2017-08-14 29 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]} /> 
    } 

} 
相關問題