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

Redux Toolkit中能否从Slice命名导出Reducer?导出报错解决

问题原因与修复方案

核心错误:reducer导出方式错误

你遇到的No reducer provided for key "cart"错误,根源是错误使用了解构赋值导出reducer。

cartSlice.reducer本身就是一个完整的reducer函数,不是带有cartReducer属性的对象。你写的export const {cartReducer} = cartSlice.reducer;相当于从一个函数里解构不存在的cartReducer属性,结果必然是undefined,导致store找不到有效的reducer。

修复步骤

修改cartSlice.js里的reducer导出代码:
把原来的:

export const {cartReducer} = cartSlice.reducer;

改成:

export const cartReducer = cartSlice.reducer;

这样就能正确导出命名为cartReducer的reducer函数,store里的cart: cartReducer就能正常识别了。

额外提醒:修复remove reducer的潜在bug

你的remove reducer里的state = state.filter(...)不会生效。Redux Toolkit的immer只能追踪直接修改state的操作(比如push、splice),或者返回新的state值。正确写法应该是直接返回过滤后的数组:

remove(state, action) {
  return state.filter((item) => item.id !== action.payload);
}

这样才能正确更新cart的状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 00:26:11