场景 1:
const { foo } = this.state;
场景 2:
this.setState(({ foo }) => { ... });
这两种情况下 foo
是否保证相同?或者 setState
是否会运行异步并根据其他 setState
返回不同的值?
最佳答案
当您在使用 this.setState
后立即访问状态时,状态可能是状态,因为 this.setState
是 async
。
如果您需要根据更新后的状态进行计算,即(在 this.state
被调用之后),您可以使用该方法的第二个参数,该方法是在状态之后触发的回调更改已提交。
this.setState(updateState, () => {
const { foo } = this.state;
console.log(foo); // updated foo
});
function updatedState({ foo }) {
// you can be sure that `foo`
// is from the previous state
// before setState is called
}
关于javascript - react : this. 状态与 this.setState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55642812/