![](/img/trans.png)
[英]With redux-form, how to set initialValues based on an ASYNC redux state?
[英]Redux-Form set component state based on initialValues
我有一个反应形式,它是通过数据库中的数据动态生成的。 我当前要解决的问题是如何基于“父”输入(通常是复选框)启用/禁用“子”输入。 我的计划是在渲染表单期间,我将基于由redux表单填充的initialValues创建组件状态设置(parentClicked1,parentClicked2等)。 组件状态设置的名称将对应于父输入名称,并将被传递给onClick方法。 例如:
const renderSettings = ({ fields, meta: { touched, error, submitFailed } }) => (
<div>
{fields.map((setting, index) => (
<Field
name={`${setting}.value`}
type={fields.get(index).inputType}
component={renderField}
label={fields.get(index).labelText}
format={(value, name) => {
return setBoolValue(value)
}}
onClick={fields.get(index).isParent ? this.onClick(fields.get(index).settingName) : null}
disabled={fields.get(index).isChild ? this.state[fields.get(index).parentSettingName] : null}
/>
))}
</div>
);
onClick的内容很简单,例如:
onClick(e, stateKey){
this.setState({[stateKey]: e.target.value});
}
问题是根据redux-form填充的initialValue设置组件状态的初始值。 我尝试在ComponentDidMount和ComponentDidUpdate中进行设置,但似乎都没有填充。 我将如何去做呢?
您是否看过从状态初始化的redux形式示例? https://redux-form.com/7.4.2/examples/initializefromstate/如果数据库的响应映射到父级中的字段名称,则应在子级中填充正确的数据。
您可以使用redux表单中的formValueSelector来检查是否单击了父级以填充子级组件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.