即使在设置之后,状态值也是未定义的

时间:2017-11-09 17:40:01

标签: reactjs react-select

以下函数是反应选择下拉列表的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**);
    })
}

1 个答案:

答案 0 :(得分:5)

这听起来很痛苦,但您需要知道setState以异步方式工作。这意味着在调用setState后,this.state变量不会立即更改。因此,如果要在状态变量上设置状态后立即执行操作,然后返回结果。回调将很有用。

使用回调函数

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

干杯..!