美文网首页
关于this.setState更新的问题

关于this.setState更新的问题

作者: 正正果实 | 来源:发表于2018-02-24 22:49 被阅读0次

this.setState是异步,所以在this.setState之后立即调用this.state是获取不到最新的数据的,那么怎么获取最新的数据呢?下面介绍三个方法:

1.回调函数callback

this.setState({  
  val: this.state.val+1
}, () => {  
  console.log(this.state.val)
});

2.componentDidUpdate

componentDidUpdate(){    
  console.log(this.state.val);
}

在this.setState之后去componentDidUpdate函数中调用,此时的this.state已经更新

3.将this.setState放入setTimeout函数中

let self= this;
setTimeout(function () {
  self.setState({    
    val:self.state.val+1
  });  
  console.log(self.state.val);
})

在setTimeout函数中,在this.setState之后this.state也是更新的,所以也可以获取到更新后的数据,但是此方法并不建议使用。

相关文章

网友评论

      本文标题:关于this.setState更新的问题

      本文链接:https://www.haomeiwen.com/subject/lgocxftx.html