我有一个对象数组,并希望将数据作为初始数据传递给 redux 表单的FieldArray组件。
我浏览了FieldArray组件的文档,但不清楚提供初始值。
有没有办法做到这一点?
您必须将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>
))}
)
查看文档了解更多信息
2.同样,您也可以手动调度INITIALIZE
动作,
reduxForm HOC 将为您提供一个初始化操作作为道具, 你可以在 componentDidMount 中使用它,
componentDidMount() => {
const {initialize} = this.props;
initialize({field1: "val1", fieldArrayFieldName: ["val1", "val2"]})
}