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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:19:42