首页 > 解决方案 > 添加新字段时为 FieldArray 中的 redux-form 字段提供默认值

问题描述

以前在 redux-form 的早期版本中,您可以将prop 直接传递给字段,而不是在函数initialValue中传递initialValues值。mapStateToProps现在看来你只能做后者。

我想知道如何将我的字段数组中新推送的字段的默认值设置为“字段 No.2”(我会使用传递给字段的索引来获取数字,我更难过如何传递默认值。)

标签: javascriptreactjsredux-form

解决方案


当您将新条目推送到数组时,您可以传递初始值。鉴于 redux-form 文档中的示例:


const renderSubFields = (member, index, fields) => (
  <li key={index}>
    <button
      type="button"
      title="Remove Member"
      onClick={() => fields.remove(index)}
    />
    <h4>Member #{index + 1}</h4>
    <Field
      name={`${member}.firstName`}
      type="text"
      component={renderField}
      label="First Name"
    />
    <Field
      name={`${member}.lastName`}
      type="text"
      component={renderField}
      label="Last Name"
    />
  </li>
)
const renderMembers = ({ fields }) => (
  <ul>
    <button type="button" onClick={() => fields.push({ firstname: 'field 1 firstname', lastname: 'field 1 lastname' })}>
      Add Member
    </button>
    {fields.map(renderSubFields)}
  </ul>
)

推荐阅读