我有一个反应形式,该反应形式是通过DB中的数据动态生成的。我当前要解决的问题是如何基于“父”输入(通常是复选框)启用/禁用“子”输入。我的计划是在渲染表单期间,我将基于由redux表单填充的initialValues创建组件状态设置(parentClicked1,parentClicked2等)。组件状态设置的名称将对应于父输入名称,并将被传递给onClick方法。例如:
#if-#endif
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>
);
问题是根据redux-form填充的initialValue设置组件状态的初始值。我尝试在ComponentDidMount和ComponentDidUpdate中进行设置,但似乎都没有填充。我将如何去做?
答案 0 :(得分:0)
您是否研究过从状态初始化的redux形式示例? https://redux-form.com/7.4.2/examples/initializefromstate/ 如果来自数据库的响应映射到父级中的字段名称,则应在子级中填充正确的数据。
您可以使用redux表单中的formValueSelector来检查是否单击了父级以填充子级组件。