javascript - react setState 不更新状态

标签 javascript reactjs state setstate

所以我有这个:

let total = newDealersDeckTotal.reduce(function(a, b) {
  return a + b;
},
0);

console.log(total, 'tittal'); //outputs correct total
setTimeout(() => {
  this.setState({ dealersOverallTotal: total });
}, 10);

console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1'); //outputs incorrect total

newDealersDeckTotal 只是一个数字数组 [1, 5, 9] 例如 但是 this.state.dealersOverallTotal 没有给出正确的总数,但是 total 给出了?我什至设置了超时延迟,看看这是否解决了问题。 有什么明显的或者我应该发布更多代码吗?

最佳答案

setState() 通常是异步的,这意味着在您console.log 状态时,它还没有更新。尝试将日志放在 setState() 方法的回调中。状态改变完成后执行:

this.setState({ dealersOverallTotal: total }, () => {
  console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1');
}); 

关于javascript - react setState 不更新状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41446560/

相关文章:

javascript - React child 问题( typescript )

angularjs - 可以从URL中获取参数

javascript - 根据范围类型输入中的其他状态值设置最大值( react )

javascript - jQuery width() 不起作用

javascript - Jquery切换背景颜色

javascript - 如何在 jquery 中克隆和放置两个不同的项目在各自的位置

reactjs - 在开发期间从 Create React App 中的本地主机服务器获取与在生产期间从部署获取

javascript - 无法从React中的子组件调用父组件函数

javascript - 我在 Postman 中发送 'name',ValidatorExpress 返回 'name' 尚未提供

swiftui - 当 View 消失时如何使用组合框架取消初始化ViewModel