在使用create-react-app并将index.js ReactDOM.render更新到React 18之后,我得到了这个错误:“警告:您正在从不受支持的'react-dom'导入createRoot。您应该从'react-dom/client'导入它”。
Index.js:
import React from 'react';
import ReactDOM from 'react-dom';
import { createRoot } from 'react-dom/client';
import Switch from './components/Switch';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<Switch />
</React.StrictMode>
);
6条答案
按热度按时间xienkqul1#
收到的错误消息指示您应该从
react-dom/client
而不是react-dom
导入createRoot
方法。要解决这个问题,只需修改
createRoot
的import语句,如下所示:所以修改后的代码应该是这样的:
jckbn6z72#
对于所有类型脚本用户,如果您收到经典的 *“未找到此模块的类型”警告,请添加此警告。
src/react-app-env.d.ts
jyztefdp3#
确保你的react-dom版本是
"^18.0.0"
rdlzhqv94#
你可以这样做:
我使用了从
react-dom/client
导入的createRoot
,并删除了未使用的ReactDOM
的导入w1jd8yoj5#
Necesitas agregar '/client' cuando importas 'ReactDOM'
导入'ReactDOM'时需要添加'/client'。
wvmv3b1j6#
现在在React 18+中,你可以这样做: