11. this.setState更新问题

this.setState是异步的,所以在this.setState之后不能立刻得到最新的state数据
关于如何获取最新的数据,有如下三种方法

1.回调函数

this.setState({
  xxx:'xxx',
}, () => {
  console.log(this.state.xxx)
});

2.利用组件生命周期函数componentDidUpdate

3.利用setTimeout 延迟为0

当setTimeout 延迟为0时

componentDidMount () {
        console.log('a');
        setTimeout(function(){
            console.log('b');
        },0);
        console.log('c');
        console.log('d');
    }
 

posted @ 2018-06-29 09:52  大耳朵小虎  阅读(182)  评论(0编辑  收藏  举报