(Решено) Как привязать пользовательскую (поле формы) для записи запись? - PullRequest
1 голос
/ 14 июня 2019

Я создаю пользовательский ввод через поле формы приставки.Я использую пропозицию «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);

1 Ответ

0 голосов
/ 15 июня 2019

Вы должны использовать initialValues ​​в избыточной форме. см здесь .

...