React项目构建报错:useContext/createContext未导出的解决咨询
解决React-Redux中useContext/createContext未导出的问题
1. 确认React版本达标
React的useContext(React 16.8+)和createContext(React 16.3+)属于特定版本才有的API,先检查package.json里的react和react-dom版本:
- 版本低于16.8.0的话,直接升级到稳定兼容版,比如
^18.2.0:npm install react@^18.2.0 react-dom@^18.2.0
2. 匹配React与React-Redux的版本对应关系
React-Redux和React版本绑定严格,别盲目降级,对应关系如下:
| React版本 | 兼容的React-Redux版本 |
|---|---|
| React 18 | v8.0.0+ |
| React 17 | v7.2.6+ / v8.x |
| React 16.8-16.x | v7.x |
根据你的React版本安装对应React-Redux,比如React 18搭配v8:
npm install react-redux@^8.1.3
3. 修正Vite配置的React解析问题
打开vite.config.mts,排查是否存在错误的路径配置导致React模块解析异常:
- 移除任何将
react指向错误路径的resolve.alias配置 - 添加正确的React解析规则,确保Vite能找到node_modules里的React包:
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ plugins: [react()], resolve: { extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'], alias: { 'react': require.resolve('react'), 'react-dom': require.resolve('react-dom') } } })
4. 清理依赖缓存并重装
缓存可能导致依赖版本不匹配,执行以下步骤:
- 删除依赖文件夹和锁文件:
rm -rf node_modules package-lock.json - 重新安装依赖:
npm install
5. 检查代码中的导入方式
确保项目中没有错误的React导入写法:
- 错误示例:
import { useContext } from 'react/index.js' - 正确写法:
import { useContext, createContext } from 'react'
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

