2017-08-14 12 views
0

私はreduxForm関数に供給されているReactコンポーネント(Contractと呼ばれる)を持っています。フォームの一部となるフィールド名の配列(下に示すfieldsプロパティ)が与えられています。コンポーネント内のreduxフォームにフィールドを追加する

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

しかし、このコンポーネントが作成されている間に、このリストに追加する必要がありますサーバーからロードされたデータ(追加のフィールド名)があります。そのデータは時間内に読み込まれないことがあります。このコンポーネントが作成された後に、フィールドのリストを動的に更新してフォームの一部にすることは可能ですか?契約コンポーネント内で更新できるか、またはこのコンポーネントが作成されると、フィールドのリストが石で設定されるのでしょうか?

答えて

0

fieldsの設定があるので、バージョン5以前を使用していることを前提としています。 の代わりにfields小道具をフォームコンポーネントに渡すことで、フィールドを動的にすることができます。 (See docs

この例では、フィールドをフェッチするためにステートフルコンポーネントを使用しましたが、もちろんredux接続コンポーネントを使用することもできます。

class ContractContainer extends Component { 

    state = { fields: [] }; 

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

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

} 
関連する問題