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

React Redux问题:为何控制台打印的noOfIceCream值为NaN?

排查Redux iceCreamReducer中noOfIceCream出现NaN的问题
  • 优先检查default分支的返回逻辑
    你当前代码的default分支返回的是{ state },这会把原state嵌套进一个新对象里。第一次触发default后,state结构会变成{ state: { noOfIceCream: 100 } },后续触发ICE_CREAM_BUY时,state.noOfIceCream就会是undefined,执行undefined - 1自然得到NaN。正确写法应该直接返回原state:

    default:
        return state
    
  • 验证初始state的有效性
    在reducer函数开头添加console.log('Current state:', state),确认首次初始化时state是否是预期的{ noOfIceCream: 100 },排查是否有其他逻辑覆盖了初始state。

  • 检查action触发流程
    确认触发ICE_CREAM_BUY的代码没有错误,比如有没有误传参数导致state分支被篡改,或者是否有其他reducer意外修改了该state节点。

  • 排查是否存在直接修改state的操作
    Redux要求state必须通过返回新对象更新,不能直接修改原state。如果应用中有代码直接修改state.noOfIceCream的值,可能导致其变成非数字类型,最终引发NaN。

内容的提问来源于stack exchange,提问作者Pawan Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:32:36