Я создаю пользовательский ввод через поле формы приставки.Я использую пропозицию «name», чтобы соответствовать атрибуту записи, с которым я хочу связать, но когда я создаю или редактирую запись, параметры записи не показывают ни входное значение, ни имя атрибута.
I 'Мы пробовали руководство по реагированию на пользовательские вводы несколькими способами, но безрезультатно.
Среда
Версия React-admin: 2.7.2 Версия React: 16.8.3 Браузер: Chrome / Firefox
// tariff.js
import TextField from '@material-ui/core/TextField';
import { Field } from 'redux-form';
const renderTextField = ({ input, label, meta: { touched, error }, ...custom }) => {
const { defvalue } = custom;
return (
<TextField
label={label}
error={!!(touched && error)}
helperText={touched && error}
{...input}
{...custom}
value={defvalue}
/>
)
};
class Tariff extends React.Component {
state = {
tariffs: [],
selectedTariff: {}
}
// other methods...
render() {
const { tariffs, selectedTariff } = this.state;
return (
<React.Fragment>
<Autocomplete suggestions={tariffs}
label={'Elija una tarifa'}
onChange={this.onTariffSelected}
defaultValue={''} />
<Field name="tariff" component={renderTextField} label="Tarifa" defvalue={selectedTariff.amount || 0} />
</React.Fragment>
)
}
}
// Customer.js
export const CustomerCreate = (props) => (
<Create title="Crear Alumno" {...props}>
<SimpleForm defaultValue={{status: true, identification_type: 'DNI'}}>
<TextInput label="Nombre" source="name" validate={required()}
<Tariff/>
</SimpleForm>
</Create>
Пользовательское входное свойство "имя" (через поле формы редукса), которое будет добавлено к записи при сохранении или редактировании.
<Field name="tariff" defvalue={0}}/>
Я ожидаю, что при POST / PUT запись будетна его теле есть «тариф»: 0.
РЕШЕНИЕ:
Просто подключите компонент с полем редукса к хранилищу редукса:
export default connect(null, null)(Tariff);