setState 执行顺序

来源:3-9 月份选择组件 编码第二部分

巴赫旧约

2019-08-15

changeMonth = (event, monthNumber) => {
    event.preventDefault();
    this.setState({
        selectedMonth: monthNumber,
        isOpen: false
    });
    console.log(this.state.selectedMonth, this.state.selectedYear, monthNumber);
    this.props.onChange(this.state.selectedYear, this.state.selectedMonth);
}

老师,我在编码的时候发现回调 this.state.selectedMonth, 发现还是selectedMonth还是上一次的month的值。而不是changeMonth这个function传入的参数monthNumber。是不是setState执行是异步的?this.setState是什么时候执行或者怎么触发的,您有推荐文档嘛?

写回答

1回答

张轩

2019-08-15

你好同学 setState 是异步的,看官方文档就好啦,地址:https://zh-hans.reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous

0
1
巴赫旧约
非常感谢!
2019-08-19
共1条回复

React16组件化+测试+全流程 实战在线账本项目

轻松上手,从设计图到上线,精通组件化思维和组件测试

713 学习 · 177 问题

查看课程