Redux-Form根据initialValues设置组件状态

时间:2018-07-01 05:35:32

标签: reactjs redux-form

我有一个反应形式,该反应形式是通过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中进行设置,但似乎都没有填充。我将如何去做?

1 个答案:

答案 0 :(得分:0)

您是否研究过从状态初始化的redux形式示例? https://redux-form.com/7.4.2/examples/initializefromstate/ 如果来自数据库的响应映射到父级中的字段名称,则应在子级中填充正确的数据。

您可以使用redux表单中的formValueSelector来检查是否单击了父级以填充子级组件。