2017-11-09 13 views
0

以下の関数は、反応選択ドロップダウンのonChangeイベントです。 this.state.value(太字で強調表示)は、ドロップダウンが初めて変更されたときにのみ定義されます。誰かが同じものを入力してもらえますか?しかし、状態は以下の条件で設定されます。状態値は、設定されても初期値が未定義です

handleSelectChange(val,event) { 
    var label; 
if(val.map==undefined) { 
    label = val["label"]; 
    this.setState({value:val}) ; 
} 
else{ 
    label = val["label"]; 
    this.setState({value:val}) ; 
} 
    this.setState({dropDownSelected:true},function(){ 
this.props.dropDownSelected(**this.state.value**); 
    }) 
} 

答えて

5

これは苦しいと聞こえますが、setStateは非同期で動作することを知る必要があります。これは、setStateを呼び出した後に、this.state変数がただちに変更されないことを意味します。したがって、状態変数に状態を設定した直後にアクションを実行してから結果を返す場合は、コールバックは便利です。

は、コールバック関数のサンプルsetState

this.setState({value:val}, function() { 
    // Do something here 
    }); 

乾杯して下さい...!

関連する問題