编译代码时提示Reducer未定义,咨询使用Reducer是否需新导入模块
编译报错「Reducer is not defined」的排查与解答
问题场景
编译代码时出现「Reducer is not defined」错误,报错指向第8行,相关代码如下:
store 相关代码
import { createStore,applyMiddleware } from "redux"; import thunk from "redux-thunk"; import { composeWithDevTools } from "redux-devtools-extension"; import reducer from "./Reducer/Combine"; const middleware = [thunk]; const store = createStore( reducer, composeWithDevTools(applyMiddleware(...middleware)) ) export default store;
Combine 文件夹内代码
import { combineReducers } from "redux"; import tablereducer from "./tablereducer"; const reducer = combineReducers({ tablereducer: tablereducer }) export default reducer;
问题解答
不需要额外导入新模块。你当前的代码已经正确实现了reducer的导入逻辑,报错大概率是以下原因导致:
- 文件路径错误:检查
./Reducer/Combine的路径是否准确,确认Combine文件夹下存在入口文件(通常是index.js),注意文件名大小写(部分操作系统对大小写敏感)。 - 导出/导入匹配问题:若Combine文件夹下的入口文件名不是index.js,需要在导入时明确指定文件名,比如
import reducer from "./Reducer/Combine/yourFileName.js"。 - tablereducer 异常:检查
./tablereducer文件是否存在,且该文件正确导出了合法的reducer函数(必须是接收state和action、返回新state的纯函数),如果tablereducer未正确导出,会导致combineReducers生成的reducer无效,间接引发报错。 - 缓存或编译问题:尝试清除项目缓存(如React项目的
node_modules/.cache目录),或重启开发服务器,旧缓存可能导致模块加载异常。
内容的提问来源于stack exchange,提问作者sai kumar
相关产品推荐
相关产品推荐

