react 状态state异步转化为同步的3种方式

setState在钩子函数和合成函数里是异步的执行的,setTimeout和setInterval是同步的
要获得同步数据,有3中方法:
1、传递函数给setState方法

 this.setState((prestate, props) => ({
            count: prestate.count + 1
        }));

2、使用定时器setTimeout

 setTimeout(() => {
            this.changeVal();
            console.log(this.state.count);
        })

3、原生事件中修改状态:

     document.body.addEventListener('click', this.changeVal, false);
     changeVal = () => {
        this.setState({
            count: this.state.count
        })
    }

发布了18 篇原创文章 · 获赞 0 · 访问量 368

猜你喜欢

转载自blog.csdn.net/weixin_39788999/article/details/104088129