繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM