setState 是同步还是异步的?
trigger = (isBatchedUpdate: boolean) => {
const runSetState = () => {
this.setState({ count: this.state.count + 1 }, () => console.log(this.state.count));
};
if (isBatchedUpdate) {
runSetState();
} else {
setTimeout(runSetState, 0);
}
};
<button onClick={() => this.trigger(true)}>触发合成事件</button>;
<button onClick={() => this.trigger(false)}>触发 setTimeout 事件</button>;
大约 2 分钟