如何用Yarn Resolutions解决Redux Toolkit依赖的react-redux版本问题?
问题解决:RTK Query构建时提示"useStore"未找到
问题原因
你安装的@reduxjs/toolkit@1.9.7的Query React模块依赖react-redux 8.x版本的API(比如useStore),但项目中默认的react-redux包是5.0.7版本,并不包含这个API。虽然你通过别名react-redux8安装了8.x版本,但RTK在解析自身依赖时,会优先查找包名为react-redux的依赖,而非别名,因此导致构建报错。
解决方法(Yarn resolutions配置)
通过Yarn的resolutions字段,强制指定@reduxjs/toolkit所依赖的react-redux版本为8.x,具体步骤如下:
- 在项目的
package.json中添加resolutions配置块:
{ // ...其他已有配置 "resolutions": { "@reduxjs/toolkit>react-redux": "^8.0.0" } }
- 重新安装依赖,让resolutions配置生效:
yarn install
- 重新执行构建命令,此时RTK Query会使用指定的8.x版本
react-redux,即可解决报错问题。
补充说明
如果项目中其他代码确实需要依赖react-redux 5.0.7,上述配置仅针对@reduxjs/toolkit的子依赖生效,不会影响项目中其他地方对react-redux 5.x的引用,两者可以共存。
内容的提问来源于stack exchange,提问作者geoffjay
相关产品推荐
相关产品推荐

