我正在使用最新的redux-form(v6)。我试图用状态值初始化表单,所以我这样做,根据文档:
myForm = reduxForm({
form: 'xxx'
})(myForm);
myForm = connect(state => ({
initialValues: {
...state.taskForm.taskData.parameters
}
})
)(myForm);
然后,我在Field
的{{1}}方法中小心地添加了render()
个组件,我使用了我的自定义myForm
无状态组件:
InputField
(我正在使用export const InputField = ({propName, label}) => (
<Field name={propName}
component={ (prop) => <FormGroup>
<Col xs={4} componentClass={ControlLabel}>{label}</Col>
<Col xs={8}>
<FormControl {...prop} />
</Col>
</FormGroup>
}
/>
);
用于UI)
当然,我从react-bootstrap
三次检查name
的{{1}}是正确的{。}}。
但是,表单显示的是空白字段而不是初始值。
我可以通过调试器看到INITIALIZE操作Field
包含具有正确初始值的字段。
我认为问题如下: INITIALIZE 操作在 REGISTER_FIELD 之前发送。或者至少,一旦 REGISTER_FIELD 被调度,虽然正确设置了字段名称,但它并没有取初始值...但我不知道如何解决问题。和 也许是因为别的......
当我绝望时,我尝试initialValues
,但它并没有改变任何事情。
答案 0 :(得分:2)
Field
将分为input
和meta
个对象的属性传递给其组件,您应该只将input
属性传递给FormControl
组件。所以使用这个:
<FormControl {...prop.input} />
而不是:
<FormControl {...prop} />
请查看redux-form docs了解详情。