2017-12-06 26 views
0

私は子コンポーネントでreact-selectを使用していますが、選択値を親の状態に保存したいとします。react-selectハンドルonChange with props

私はonChangeをstateに格納してからこれをSelect値に渡す必要があることを感謝しますが、この一時的なonChange状態を親ではなく子コンポーネントに保持したいと思います。

したがって、子供のonChange状態からの親状態(小道具に入ってくる)をどのように設定すればよいのでしょうか。

親コンポーネント

campaignName (campaign){ 
    //will setState here 
    console.log(campaign) 
    } 
... 
<FormGroup> 
    <Campaign 
    campaignName={this.campaignName.bind(this)} 
    campaignOptions={code in here that sets option} 
    /> 
</FormGroup> 

子コンポーネント

updateValue (newValue) { 
    this.setState({ 
     selectValue: newValue, 
    // how do I set the parent state from this 
    }); 

<Select 
    onChange={this.updateValue} 
    value={this.props.campaignName} 
    options={this.props.campaignOptions} 
/> 

答えて

0

のonChangeを処理する親から子へ直接関数を渡す:

親コンポーネント

handleSelect(e) { 
    this.setState({ 
     selectValue: e.target.value, 
    }); 
} 

render() { 
    <ChildComponent selectOnChange={this.handleSelect} /> 
} 

子コンポーネント

<Select 
    onChange={this.props.selectOnChange} 
    value={this.props.campaignName} 
/> 

OR(あなたはメソッドが子供に滞在したい場合)

updateValue(e) { 
    this.props.selectOnChange(e); //call the passed props here 
} 

<Select 
    onChange={this.updateValue} 
    value={this.props.campaignName} 
/> 
+0

おかげで、私は探検ました子にonChangeを格納する方法親 –

+0

私は自分の答えを更新しました。あなたの問題を解決するための別のオプションを追加しました。 –

+0

同じ問題のある相手がこの問題を参照できるように、問題を解決する場合は正解としてマークすることを忘れないでください。ありがとうございました:) –

関連する問題