Как добавить флажки в форму администратора на отдыхе для администратора на отдыхе и отправить значение флажка в бэкэнд

Я добавил компонент material-ui/Checkbox в форму создания admin-on-rest с атрибутом source. Но после того, как я нажал кнопку «Сохранить», я не смог увидеть значение флажка в опубликованных данных.

Но я вижу значение полей «название» и «тело» в опубликованных данных. Может кто-нибудь сказать, почему этот код не работает?

Вот мой пример кода:

export const PostCreate = (props) => (
        <Create {...props} >
            <SimpleForm>
                <TextInput source="title" />
                <LongTextInput source="body" />
                <Checkbox
                    label="Label on the left"
                    labelPosition="left"
                    source="test"
                    value="yes"
                />
    </SimpleForm></Create>
    );

person sandy    schedule 01.02.2018    source источник
comment
Вам нужно использовать компонент поля с редукционной формой создать обернутый компонент referenceinput"> stackoverflow.com/questions/48110246/   -  person Fernando Navarro    schedule 02.02.2018


Ответы (2)


Конечно, Checkbox не является компонентом реагирования на действия администратора. Пожалуйста, используйте BooleanInput

person Dennie de Lange    schedule 02.02.2018

Модуль BooleanInput.js из rect-admin, переключатель заменен на флажок:

import React, { Component } from 'react'
import PropTypes from 'prop-types'
import FormControlLabel from '@material-ui/core/FormControlLabel'
import FormGroup from '@material-ui/core/FormGroup'
import Checkbox from '@material-ui/core/Checkbox'
import { addField, FieldTitle } from 'ra-core'

const sanitizeRestProps = ({
  alwaysOn,
  basePath,
  component,
  defaultValue,
  formClassName,
  initializeForm,
  input,
  isRequired,
  label,
  locale,
  meta,
  options,
  optionText,
  optionValue,
  record,
  resource,
  allowEmpty,
  source,
  textAlign,
  translate,
  translateChoice,
  ...rest
  }) => rest

export class CheckboxInput extends Component {
  handleChange = (event, value) => {
    this.props.input.onChange(value)
  }

  render() {
    const {
      className,
      input,
      isRequired,
      label,
      source,
      resource,
      options,
      ...rest
    } = this.props

    return (
      <FormGroup className={className} {...sanitizeRestProps(rest)}>
        <FormControlLabel
          control={
            <Checkbox
              color="primary"
              checked={!!input.value}
              onChange={this.handleChange}
              {...options}
            />
          }
          label={
            <FieldTitle
              label={label}
              source={source}
              resource={resource}
              isRequired={isRequired}
            />
          }
        />
      </FormGroup>
    )
  }
}

CheckboxInput.propTypes = {
  className: PropTypes.string,
  input: PropTypes.object,
  isRequired: PropTypes.bool,
  label: PropTypes.string,
  resource: PropTypes.string,
  source: PropTypes.string,
  options: PropTypes.object,
}

CheckboxInput.defaultProps = {
  options: {},
}

export default addField(CheckboxInput)
person MaxAlex    schedule 10.07.2018