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

如何解决React从18降级到16后Vite项目的‘ReactDOM.createRoot is not a function’错误?

解决方案:React 16 与 Vite 兼容配置调整

报错的核心原因是 React 16 不支持 ReactDOM.createRoot API,该方法是 React 18 新增的特性。无需降级 Vite 核心版本,只需调整以下3项配置即可解决问题:

1. 修正入口文件渲染逻辑

将 main.jsx 中 React 18 风格的渲染代码替换为 React 16 标准写法:

import React from 'react'
import ReactDOM from 'react-dom'
import App from './App'
import './main.css'

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
)

2. 降级类型定义依赖

当前 @types/react 和 @types/react-dom 为 React 18 版本,与 React 16 不匹配,执行以下命令降级到对应版本:

npm install @types/react@^16.14.0 @types/react-dom@^16.9.18 --save-dev

3. 调整 Vite React 插件版本

@vitejs/plugin-react@3.x 专为 React 18 设计,需降级到支持 React 16 的 2.x 系列版本:

npm install @vitejs/plugin-react@^2.2.0 --save-dev

完成以上调整后,重启 Vite 开发服务,项目即可正常运行。

内容的提问来源于stack exchange,提问作者Shifty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:50:22