You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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带来了不少性能优化和新特性,而且后续的生态也会逐渐向新版本靠拢。

  1. 先检查当前项目的React版本,在项目根目录的终端里运行:
    npm list react react-dom
    
    看看输出的版本号是不是低于18.x.x。
  2. 如果确实是低版本,执行对应的升级命令:
    • 用npm的话:
      npm install react@latest react-dom@latest
      
    • 用yarn的话:
      yarn add react@latest react-dom@latest
      
    • 用pnpm的话:
      pnpm add react@latest react-dom@latest
      
  3. 升级完成后,记得重启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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:55:31