reactjs:setState()会立即改变this.state吗?

Iña*_*llo 0 reactjs

我已经尝试过一些调用this.setState({ foo: true })和立即检查this.state.foo不会返回新值的情况true.

我现在无法告诉发生这种情况的确切情况(也许setState()在同一次迭代中多次调用时,我不知道).所以我想知道:

reactjs是否保证以下内容始终有效?

this.setState({ foo: true });

console.log(this.state.foo);
// => prints true
Run Code Online (Sandbox Code Playgroud)

Ale*_* T. 5

reactjs是否保证以下内容始终有效?

不,setState异步方法.如果你想获得更新状态,你应该使用回调作为第二个参数

this.setState({ foo: true }, () => {
  console.log(this.state.foo);
});
Run Code Online (Sandbox Code Playgroud)