You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React.js中onChange无法更新有状态对象的问题求助

问题解决:React状态更新不同步导致quantity始终为0

你现在的问题出在连续调用了两次setOrderlist,React的状态更新是异步且批量处理的,两次更新都基于同一个旧的orderlist状态,导致第二次更新覆盖了第一次的修改——看起来你能看到total正确,大概率是因为第一次更新的临时状态被你捕获到,但最终生效的是第二次只更新quantity的操作,而由于异步特性,quantity的更新也没正确同步。

直接把两个状态更新合并成一次就行,这样能同时修改quantity和total:

const handleAmount = (amount) => {
  setOrderlist({
    ...orderlist,
    quantity: amount,
    total: orderlist.price * amount
  });
};

如果你的orderlist还会被其他地方修改,更稳妥的方式是用函数式更新,基于前一次的最新状态来计算:

const handleAmount = (amount) => {
  setOrderlist(prevOrder => ({
    ...prevOrder,
    quantity: amount,
    total: prevOrder.price * amount
  }));
};

这样就能保证quantity和total都被正确更新,不会出现一个生效一个不生效的情况。

内容的提问来源于stack exchange,提问作者Yoqubxon Xamidoff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:31:02