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

Monorepo中RTK Query报错:未找到react-redux上下文值求助

解决RTK Query找不到React-Redux Context的问题

问题背景

维护一个包含多版本Redux Toolkit的Monorepo应用,执行yarn-deduplicate && yarn install后,调用RTK Query的API Hook时出现报错:

RTK Query Error: could not find react-redux context value; please ensure the component is wrapped in a

已在入口文件配置<Provider>,注释RTK Query Hook后Redux Store可正常使用。

核心原因

Monorepo环境下,yarn-deduplicate可能未彻底消除react-redux或@reduxjs/toolkit的多版本实例,导致:

  • <Provider>使用的是某一版本的React-Redux Context
  • RTK Query Hook使用的是另一版本的Context
    两者上下文不匹配,因此Hook无法识别Provider。

解决方案

1. 检查依赖重复情况

执行以下命令确认是否存在多版本依赖:

yarn list react-redux
yarn list @reduxjs/toolkit

如果输出结果显示多个版本(比如根包和子包各有一个版本),说明存在重复实例问题。

2. 强制锁定依赖版本

在Monorepo根目录的package.json中添加resolutions字段,统一锁定依赖版本:

"resolutions": {
  "react-redux": "^8.0.2",
  "@reduxjs/toolkit": "^1.8.5"
}

执行yarn install重新安装依赖,确保所有子包都使用指定的统一版本。

3. 验证导入一致性

检查所有子包中导入react-redux、@reduxjs/toolkit相关模块的路径,确保没有子包单独安装了这些依赖(即所有导入都来自根包的node_modules)。

4. 清除缓存并重装

如果上述步骤无效,执行以下操作彻底清理:

yarn cache clean
rm -rf node_modules yarn.lock
yarn install

额外检查点

  • 确认Store配置中正确添加了RTK Query的reducer和middleware(你的代码中这部分配置是正确的)
  • 确保useFetchAllQuery的导入路径正确,没有从其他子包的独立RTK实例中导入

内容的提问来源于stack exchange,提问作者Carlos Damian Perez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:18:34