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

Rak*_*lam 0 reactjs react-select

下面的函数是onChange事件,用于react-select下拉列表.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**);
    })
}
Run Code Online (Sandbox Code Playgroud)

Gan*_*esh 5

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

找到setState具有回调函数的示例

this.setState({value:val}, function() {
    // Do something here 
  });
Run Code Online (Sandbox Code Playgroud)

干杯..!