使用React-Redux出现模块解析错误,多版本调整无效求助
解决React-Redux无法解析
./utils/batch的错误 我之前帮不少开发者排查过类似问题,结合你的依赖配置来看,核心原因是Expo SDK 32 与手动指定的 React/React-Redux 版本不兼容,再加上依赖冗余、旧版本依赖拖后腿,导致常规的版本调整方案没起作用。下面是针对性的解决步骤:
一、定位关键矛盾点
Expo SDK 是一套集成化的开发环境,它对 React、React Native 的版本有严格的内置适配,你手动指定react: ^16.8.6会和 Expo SDK 32 内置的 React 版本(实际是 16.5.x 左右)产生冲突,这才让 React-Redux 6.x 无法找到./utils/batch模块——因为这个模块的路径依赖于 React 内部的 API 结构,版本冲突破坏了这个引用链。
另外你的依赖里还有两个冗余/过时问题:
- 同时安装了
react-saga和redux-saga,这两个是同一库的不同命名,保留一个即可 react-thunk: ^1.0.0版本过于老旧,和当前的 Redux 4.0.1 不兼容
二、具体修复步骤
1. 调整依赖配置
修改你的package.json,删除手动指定的 React 依赖,修正其他版本:
"dependencies": { "expo": "^32.0.6", "prop-types": "^15.7.2", "react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz", "react-redux": "^5.1.1", // 降级到和Expo SDK32兼容的版本 "redux": "^4.0.1", "redux-saga": "^1.0.2", "react-thunk": "^2.3.0" // 升级到兼容Redux 4.x的版本 }, "devDependencies": { // 移除schedule,Expo会内置适配的版本 }
2. 彻底清理依赖与缓存
执行以下命令清除旧依赖和缓存:
# 删除node_modules和锁文件 rm -rf node_modules package-lock.json yarn.lock # 重新安装依赖 npm install # 或者用 yarn install # 清除Expo缓存,避免旧缓存干扰 expo r -c
三、为什么之前的方案无效?
你之前尝试调整版本时,没有意识到Expo SDK 会强制绑定特定版本的 React/React Native,手动修改 React 版本只会导致环境混乱;另外冗余的react-saga和过时的react-thunk也会让依赖树出现冲突,掩盖了核心问题。
内容的提问来源于stack exchange,提问作者Mostafa AGUERRAM
相关产品推荐
相关产品推荐

