如何以Redux形式将初始值传递给FieldArray组件?

时间:2019-08-25 15:25:02

标签: reactjs redux redux-form

我有一个对象数组,想将数据作为初始数据传递到redux表单的 FieldArray 组件。

我浏览了文档中的 FieldArray 组件,但不清楚是否提供初始值。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您将必须将fieldArray传递为数组,可以通过两种方式实现这一点:

1。将initialValues道具传递给reduxForm HOC配置

const Form = reduxForm({
  form: 'simple' // a unique identifier for this form
  initialValues: {field1: "val1", fieldArrayFieldName: ["val1", "val2"]}
})(SimpleForm)

const SimpleForm = (props) => (
  ...
  <FieldArray name="fieldArrayFieldName" component={renderFieldArrayComp} />
  ...
)

const renderFieldArrayComp = ({ fields }) => (  
        {fields.map((field, index) => (
          <li key={index}>
            <Field
              name={hobby}
              type="text"
              component={renderField}
              label={`Hobby #${index + 1}`}
            />
          </li>
        ))}
      )

有关更多信息,请参见docs

2。同样,您也可以手动调度INITIALIZE操作,

reduxForm HOC将为您提供initialize动作作为道具, 您可以在componentDidMount中使用它,

componentDidMount() => {
  const {initialize} = this.props;
  initialize({field1: "val1", fieldArrayFieldName: ["val1", "val2"]})
}