为什么引入Redux Provider标签会导致整个React应用崩溃?
这个报错是Redux相关依赖和项目现有React环境不匹配、或存在重复React副本导致的,你仅引入Provider就触发报错,完全排除了Hooks使用规则错误的可能,直接按以下步骤排查即可:
- 校验react和react-dom版本一致性
打开项目package.json,确认react和react-dom的版本号完全相同,如果存在差异,将二者版本改为一致后删除node_modules、package-lock.json(或yarn.lock)重新安装依赖。 - 排查多份React副本
在项目根目录执行npm ls react(npm用户)或yarn list react(yarn用户),如果输出中存在多个不同版本的React,说明存在重复副本:- yarn用户可在package.json中新增
resolutions字段固定React版本:
之后重新执行"resolutions": { "react": "你的项目现有react版本号", "react-dom": "你的项目现有react-dom版本号" }yarn install即可。 - npm用户可在package.json中新增
overrides字段固定版本:
之后重新执行"overrides": { "react": "你的项目现有react版本号", "react-dom": "你的项目现有react-dom版本号" }npm install即可。
- yarn用户可在package.json中新增
- 检查Redux相关依赖版本兼容性
如果你使用的是React 17及更早版本,需要确认安装的react-redux版本不高于v7.2.9,@reduxjs/toolkit版本不高于v1.9.7;如果是React 18+则可以正常使用最新版的Redux相关依赖,版本不匹配的话调整依赖版本后重新安装即可。
内容的提问来源于stack exchange,提问作者p4rt2020
相关产品推荐
相关产品推荐

