(已解决)如何将自定义(redux表单的字段)输入道具绑定到记录?

时间:2019-06-13 23:21:35

标签: javascript reactjs redux-form react-admin

我正在通过redux-form的Field创建一个Custom输入。我使用“名称”道具来匹配要绑定的记录属性,但是当我创建或编辑记录时,post参数不会显示输入值或属性名称。

我已经尝试了几种有关“自定义输入”的react-admin教程,但没有结果。

环境

反应管理员版本:2.7.2 反应版本: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>

自定义输入道具“名称”(通过redux-form字段)将在保存或编辑时添加到记录中。

<Field name="tariff" defvalue={0}}/>

我希望在POST / PUT记录中他的身体上有“关税”:0。

解决方案:

只需将具有redux字段的组件连接到redux存储:

export default connect(null, null)(Tariff);

1 个答案:

答案 0 :(得分:0)

您应该以redux形式使用initialValues。参见here