我对在 React 中使用 this.setState() 时状态实际何时发生变化感到困惑。这是我的 JSX:
var Hello = React.createClass({
getInitialState: function () {
return {
iterator: 0
}
},
handleClick: function () {
console.log(this.state.iterator);
this.setState({
iterator: this.state.iterator + 1
})
console.log(this.state.iterator)
},
render: function () {
return <button onClick={this.handleClick}>{this.state.iterator}</button>;
}
});
ReactDOM.render(
<Hello name="World"/>,
document.getElementById('container')
);
如您所见,我正在记录调用 this.setState() 前后迭代器的状态。但是两次,它都记录了相同的数字。在我第一次单击按钮后,我希望分别记录 0 和 1,但它们都记录 0 和 0。第二次单击时,它们记录 1 和 1。那么状态何时实际发生变化以及究竟发生了什么这里?