一不留神,发现react版本已经升级至18,create-react-app里的react版本已经更新为18,但有一些模版还没改过来。
第一,如果安装模块说依赖于react@17.0的话,可以–force强制安装
npm i package-name --force
第二,v18修改了react-dom的使用方法,但因为用ts的模版创建的项目,react和react-dom的types还是老的,报告没有react-dom/client模块,因此在package.json中,删掉dependencies里的@types/react和@types/react-dom,重新安装
npm i @types/react @types/react-dom
这样再使用react-dom/client就可以了
import { createRoot } from 'react-dom/client'
const root = createRoot(document.getElementById('root') as Element)
root.render(
<React.StrictMode>
<Provider store={store}>
<App />
</Provider>
</React.StrictMode>
)