javascript - react : this. 状态与 this.setState

标签 javascript reactjs

场景 1:

const { foo } = this.state;

场景 2:

this.setState(({ foo }) => { ... });

这两种情况下 foo 是否保证相同?或者 setState 是否会运行异步并根据其他 setState 返回不同的值?

最佳答案

当您在使用 this.setState 后立即访问状态时,状态可能是状态,因为 this.setStateasync

如果您需要根据更新后的状态进行计算,即(在 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/

相关文章:

javascript - 如何获取特定div上的滚动方向

javascript - 使用 jQuery 平滑地过渡滚动图像

reactjs - 当从 safari 使用 qr-code-styling 下载 QRcode 时,图像中心缺少 Logo

javascript - Typescript:类型 'Promise<{}>' 无法分配给类型

javascript - jQuery 将鼠标悬停在不透明度上并单击停留在不透明度上

javascript - setState 新数据放入数组

javascript - 了解 Node.js 应用程序中的控制流

reactjs - 如何在 React 中使用组合而不是 mixin 来解决这个问题?

javascript - React中箭头函数的正确使用

javascript - Next.js 'Error occurred prerendering page "/": Error: Minified React error #321;' 在生产构建期间