美文网首页
setState方法异步转同步

setState方法异步转同步

作者: tcwcq | 来源:发表于2017-07-09 21:57 被阅读0次

我们使用的setState方法是异步请求,有的时实际的值会和我们预期不一致。
例如:

  onChange(event) {
    console.log(event)
    this.setState({money: event}
    })
<InputItem
            type="number"
            extra={this.state.extra}
            value={this.state.money}
            onChange={this.onChange.bind(this)}
          > 

在这个代码片段中,我们通过onChange方法想拿到输入框输入的值,但是用console打印这个值的时候我们发现:值总是比我们实际输入的慢一位(我们输入1234 , console出来的是123)
这个现象就是setState的异步处理造成的,为了解决这个问题,我们将onChange方法改为

onChange(event) {
    console.log(event)
    this.setState({money: event}, function () {
      this.stateFunction()
    })

这样我们console出来的值就跟我们实际输入的一致了,通过一个回调函数就能轻松让setState变为同步。
cool~~~~~~~~

相关文章

网友评论

      本文标题:setState方法异步转同步

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