所以我有一个React组件(称为Contract),它被提供给reduxForm函数。它被赋予了一系列字段名称(下面显示的字段属性),它们将成为表单的一部分。
export default reduxForm({
form: 'Contract',
fields
}, mapStateToProps)(Contract);
但是在创建此组件时,会从服务器加载数据(附加字段名称),这些数据需要附加到此列表中。该数据可能无法及时加载。在创建此组件后,是否可以动态更新字段列表并使其成为表单的一部分?可以在Contract组件内更新,还是一旦创建了这个组件,字段列表就会一成不变?
答案 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]} />
}
}