async setData(data) {
new Promise(() => this.setState(data))
}
async componentDidMount() {
console.log('前', this.state.text)
// 现在必须得await执行它才是同步的
// 有不用await执行它也能同步的方法吗?
await this.setData({text: 222})
console.log('后', this.state.text)
}
setState
为什么会是异步呢,可以看一下伪代码:react
对生命周期和dom事件做了hook
处理,为了优化setState
的调用,如果你在方法里写个for
循环setState
那就要很多次的对比和渲染在什么情况下不是异步