React中Provider无法作为JSX组件使用的TS2786错误求助
修复Redux Provider的TypeScript类型不兼容错误
这个错误的核心原因是项目中存在多个版本的React类型定义,导致ReactNode类型来自不同的@types/react包,出现类型不匹配。以下是具体修复方案:
清理重复的React类型依赖
- 执行命令查看项目中
@types/react的版本和依赖来源:npm ls @types/react - 删除项目根目录下的
node_modules文件夹和package-lock.json(使用yarn则删除yarn.lock) - 在
package.json的devDependencies中明确指定统一的@types/react和@types/react-dom版本,示例:"devDependencies": { "@types/react": "^18.2.0", "@types/react-dom": "^18.2.0" } - 重新执行
npm install
- 执行命令查看项目中
确保react-redux与React版本兼容
React 18需要搭配react-redux v8.x及以上版本,React 17对应react-redux v7.x。执行命令更新到兼容版本:npm install react-redux@latest清除TypeScript缓存
执行命令清除TypeScript的缓存,避免旧类型定义残留:npx tsc --clearCache合并重复依赖
如果第三方包(如Apollo Client、react-router-dom)自带旧版本@types/react,执行命令自动合并重复依赖:npm dedupe
完成以上步骤后,重新编译项目,即可验证错误是否解决。
内容的提问来源于stack exchange,提问作者user20659824
相关产品推荐
相关产品推荐

