您正在从不受支持的“react-dom”导入 createRoot

您正在从不受支持的“react-dom”导入 createRoot

You are importing createRoot from ‘react-dom’ which is not supported

当我们createRootreact-dom.

要解决该错误,请createRoot从导入react-dom/client

您正在从 React dom 导入 createroot

以下是错误如何在 中发生的示例index.js

索引.js
// ⛔️ Warning: You are importing createRoot from "react-dom" // which is not supported. You should instead // import it from "react-dom/client" import {StrictMode} from 'react'; import {createRoot} from 'react-dom'; // 👈️ wrong import path import App from './App'; const rootElement = document.getElementById('root'); const root = createRoot(rootElement); root.render( <StrictMode> <App /> </StrictMode>, );

解决createRoot从导入错误react-dom/client

索引.js
import {StrictMode} from 'react'; // ✅ now importing from react-dom/client import {createRoot} from 'react-dom/client'; import App from './App'; // 👇️ IMPORTANT: make sure to specify correct ID // must be the ID of the div element in your index.html file const rootElement = document.getElementById('root'); const root = createRoot(rootElement); root.render( <StrictMode> <App /> </StrictMode>, );

或者,您可以react-dom/client作为对象导入并访问其属性。

索引.js
// 👇️ For client createRoot or hydrateRoot import * as ReactDOMClient from 'react-dom/client'; // 👇️ For renderToPipeableStream or renderToReadableStream import * as ReactDOMServer from 'react-dom/server';

从版本 18 开始,该包的render()方法
react-dom被视为遗留方法react-dom

该方法被替换为
从 导出的
createRoot()react-dom/client方法。

createRoot()方法将根元素作为参数并创建一个 React 根。

根有一个render()方法可用于将 React 元素渲染到 DOM 中。React 中的根是指向顶级数据结构的指针,React 使用该指针来跟踪要渲染的树。

在新的 API 中,我们创建一个根,然后调用render()它的方法。

如果您的应用程序在更新到 React 18 后无法运行,请检查它是否包装在<StrictMode>.
严格模式
在 React 18 中发生了变化,并且比以前的版本有更多的检查。

使用严格模式时,您可能会注意到
console.log() 被打印两次

删除严格模式包装器

如果删除严格模式可以修复您的应用程序,请在升级期间将其删除,并在解决了它指出的问题后将其添加回来(在顶部或应用程序的特定部分)。

消除警告的另一种解决方案是将reactreact-dom软件包的版本恢复到旧版本,例如17.0.2通过运行npm install react@17.0.2 react-dom@17.0.2,但不建议这样做。

您可以在其Github 发布页面中阅读有关 React 18 中重大更改的更多信息
,但您很可能不会受到重大更改的影响,并且可以通过更新到 React 18 来利用更好的性能。

您还可以查看官方的
如何升级到 React 18 指南

额外资源

您可以通过查看以下教程了解有关相关主题的更多信息: