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

React Native项目中Redux购物车Action无法派发给Reducer的问题

解决Redux Action无法触发Cart Reducer的问题

我帮你排查了代码里的几个关键问题,这些应该就是导致Action派发出了但Reducer没响应的原因:

1. 常量导入方式错误

你的Cart Reducer里导入ADD_TO_CART常量的方式不对。在Action文件里,你用的是命名导出(export const ADD_TO_CART),但Reducer里却用了默认导入,这会导致ADD_TO_CART的值为undefined,Switch语句根本匹配不到对应的case分支。

修复代码:
将Reducer里的导入语句从:

import ADD_TO_CART from '../actions/cart'

改为:

import { ADD_TO_CART } from '../actions/cart'

2. CartItem未定义

你在Reducer里直接使用了new CartItem(),但代码中完全没有这个类的定义或导入,这会抛出运行时错误,导致Reducer执行中断,无法返回更新后的状态。

修复方案:
用普通JavaScript对象代替CartItem类,比如:

// 已有商品的情况
updatedCartItem = {
  quantity: state.items[addedProduct.id].quantity + 1,
  price: prodPrice,
  title: prodTitle,
  sum: state.items[addedProduct.id].sum + prodPrice
};

// 新商品的情况
updatedCartItem = {
  quantity: 1,
  price: prodPrice,
  title: prodTitle,
  sum: prodPrice
};

3. 初始状态变量拼写错误

虽然这个不会直接导致Action不触发,但会影响初始状态的正确性,建议修正:
将initalState改为initialState:

const initialState = { items: {}, totalAmount: 0 };

修改完这三个问题后,再次测试添加购物车的操作,你应该能看到Reducer里的console.log('prodPrice')输出,同时Redux Store中的Cart状态也会正常更新了。

内容的提问来源于stack exchange,提问作者m4nik 1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:02:49