Vite项目运行报错:react-dom/client模块未提供createRoot导出
Vite项目运行报错:react-dom/client模块未提供createRoot导出
看起来你遇到的问题是React版本不兼容导致的,我来帮你理清楚怎么解决:
问题根源
createRoot是React 18才正式推出的新根节点渲染API,如果你项目里安装的react和react-dom版本低于18,就会出现这个“找不到createRoot导出”的报错——因为低版本的react-dom里根本没有这个API。
解决方案
这里给你两个可行的处理方向,你可以根据自己的需求选择:
方案一:升级React到18+版本(推荐)
这是最稳妥的长期方案,因为React 18带来了不少性能优化和新特性,而且后续的生态也会逐渐向新版本靠拢。
- 先检查当前项目的React版本,在项目根目录的终端里运行:
看看输出的版本号是不是低于18.x.x。npm list react react-dom - 如果确实是低版本,执行对应的升级命令:
- 用npm的话:
npm install react@latest react-dom@latest - 用yarn的话:
yarn add react@latest react-dom@latest - 用pnpm的话:
pnpm add react@latest react-dom@latest
- 用npm的话:
- 升级完成后,记得重启Vite的开发服务器,避免缓存影响生效。
方案二:回退到旧的渲染写法(不推荐,仅临时应急)
如果你暂时不想升级React版本,可以把代码改回React 17及更早版本的渲染方式:
把你main.jsx里的这段代码:
import { createRoot } from "react-dom/client"; createRoot(document.getElementById("root")).render( <Provider store={store}> <App /> </Provider> );
替换成:
import ReactDOM from "react-dom"; ReactDOM.render( <Provider store={store}> <App /> </Provider>, document.getElementById("root") );
这样修改后,项目应该就能正常渲染了。
备注:内容来源于stack exchange,提问作者Ambagwa Eugene
相关产品推荐
相关产品推荐

