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

React Redux导入报错:./Reducers未导出rootReducer

解决Redux导入rootReducer报错:"./Reducers' does not contain an export named 'rootReducer'"

这个错误的核心原因有两个:一是你的./Reducers目录没有统一的入口文件来导出合并后的rootReducer;二是你现有的单个reducer是默认导出,并没有被组合成Redux要求的根reducer。

下面是具体的修复步骤:

步骤1:在Reducers目录下创建入口文件index.js

Redux需要将所有子reducer合并为一个根reducer(rootReducer),我们需要在Reducers文件夹里新建index.js来完成合并:

// ./Reducers/index.js
import { combineReducers } from 'redux';
// 导入订单模块的reducer(默认导出可以自定义变量名)
import placeOrderReducer from './Reducer_placeorder';

// 合并所有reducer,对象的key对应store中state的属性名
const rootReducer = combineReducers({
  placeOrder: placeOrderReducer
});

// 导出根reducer(默认导出方式)
export default rootReducer;

步骤2:调整主index.js的导入语句

根据上面的导出方式,修改主文件的导入逻辑:

  • 如果用的是默认导出(上面的代码),把主index.js的导入改成:
// 项目根目录的index.js
import rootReducer from './Reducers'; // 导入目录会自动加载目录下的index.js默认导出
  • 如果你偏好命名导出,可以把Reducers/index.js的导出改为:
export const rootReducer = combineReducers({...});

这样你原来的import { rootReducer } from './Reducers';就能正常使用了。

为什么会出现这个报错?

  • 你直接从./Reducers目录导入rootReducer,但该目录没有index.js作为入口时,打包工具无法确定要加载哪个文件;
  • 你的Reducer_placeorder.js用的是export default,它导出的是一个匿名函数,并非名为rootReducer的命名导出项,所以就算直接导入该文件,也找不到rootReducer。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:53:54