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
相关产品推荐
相关产品推荐

