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

React中useReducer实现购物车商品数量增加功能失效求助

购物车数量增加功能无效的问题修复

你代码里的核心问题是拼写错误:在返回新state时,错误地把cart写成了card,导致处理后的商品数组没有正确更新到state的cart属性上,组件无法感知到状态变化,所以功能无效且没有报错(语法本身没问题,只是属性名写错了)。

修正后的代码:

case 'INCREASE': 
    let tempCart = state.cart.map((cartItem) => {
        if (cartItem.id === action.payload) {
            return { ...cartItem, amount: cartItem.amount + 1 };
        }
        return cartItem;  
    });
    return {
        ...state,
        cart: tempCart  // 修正拼写:card → cart
    };

补充检查点:

  • 触发dispatch时,确认action.payload传递的是正确的商品ID,比如调用dispatch({ type: 'INCREASE', payload: 目标商品id })
  • 确保初始state中的cart是数组类型,且每个商品对象都包含id和amount属性

内容的提问来源于stack exchange,提问作者Nsoh Peter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:50:54