请查看以下代码。我尝试在另一个下面调用 setState
。看起来第二次调用 setState
返回的 count
始终设置为 this.state.count
。在这里,它总是被分配 3
class Counter extends React.Component {
constructor(props){
super(props);
this.handleReset = this.handleReset.bind(this);
this.state = {
count : 0
};
}
handleReset() {
this.setState(() => {
return {
count: 1
}
});
this.setState(() => {
return {
count: 3
}
});
}
render() {
return (
<div>
<h1>Count:{this.state.count}</h1>
<button onClick={this.handleReset}>reset</button>
</div>
);
}
}
ReactDOM.render(<Counter />, document.getElementById('app'));
最佳答案
根据 React 文档,它可以是异步的。
React may batch multiple setState() calls into a single update for performance. Because this.props and this.state may be updated asynchronously, you should not rely on their values for calculating the next state
关于javascript - React.js 的 this.setState() 是同步还是异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50319687/