2017-08-14 30 views
0

因此,我有一个React组件(称为Contract),它将被提供给reduxForm函数。它被赋予一个字段名称的数组(字段属性如下所示),它将成为表单的一部分。将字段添加到组件内部的还原形式

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

但是当正在创建该组件,有一个从其中将需要被附加到这个列表中的服务器被加载数据(附加字段名称)。该数据可能无法及时加载。是否可以动态更新字段列表,并在创建此组件后将它们作为表单的一部分?它可以在Contract组件中更新吗?还是一旦创建了这个组件,字段列表就被设置了?

回答

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]} /> 
    } 

} 
相关问题