将字段添加到组件内的redux表单

时间:2017-08-14 19:59:24

标签: redux-form

所以我有一个React组件(称为Contract),它被提供给reduxForm函数。它被赋予了一系列字段名称(下面显示的字段属性),它们将成为表单的一部分。

export default reduxForm({
 form: 'Contract',
 fields
}, mapStateToProps)(Contract);

但是在创建此组件时,会从服务器加载数据(附加字段名称),这些数据需要附加到此列表中。该数据可能无法及时加载。在创建此组件后,是否可以动态更新字段列表并使其成为表单的一部分?可以在Contract组件内更新,还是一旦创建了这个组件,字段列表就会一成不变?

1 个答案:

答案 0 :(得分:0)

我假设您使用的是版本5或更早版本,因为您有fields个配置。您可以将fields道具传递给表单组件,而不是在reduxForm中配置它们,从而使字段动态化。 (See docs

我在此示例中使用了一个有状态组件来获取字段,但您当然也可以使用redux连接组件。

class ContractContainer extends Component {

  state = { fields: [] };

  componentDidMount() {
    fetchData().then(fields => {
      this.setState({ fields });
    }
  }

  render() {
    <Contract fields={[...staticFields, ...this.state.fields]} />
  }

}