Arn*_*old 10 javascript typescript reactjs
import React from 'react';
import * as ReactDOMClient from 'react-dom/client';
import App from './App';
import reportWebVitals from './reportWebVitals';
const rootElement = document.getElementById("root");
// This opts into the new behavior!
ReactDOMClient.createRoot(rootElement as HTMLElement).render(
<React.StrictMode>
<App />
</React.StrictMode>
);
reportWebVitals();
Run Code Online (Sandbox Code Playgroud)
如果执行此代码,则会出现如下错误。
找不到模块“react-dom/client”的声明文件。'E:/Workspace/React/welcomedev-react-starter/node_modules/react-dom/client.js' 隐式具有 'any' 类型。尝试它是否存在或添加包含
1 |npm i --save-dev @types/react-dom的新声明 (.d.ts) 文件 declare module 'react-dom/client';从“反应”导入反应;
2 | 从'react-dom/client'导入*作为ReactDOMClient; | ^^^^^^^^^^^^^^^^^^^^ 3 | 从“./App”导入应用程序;4 | 从'./reportWebVitals'导入reportWebVitals;
我想要答案。
Cat*_*ord 13
确保您安装了正确的类型版本。尝试运行:
npm install --save-dev @types/react@18 @types/react-dom@18
不要依赖 IDE 来正确获取所有内容。就我而言,我必须手动输入导入并使用,createRoot如下所示:
import { createRoot } from 'react-dom/client';
const root = createRoot(document.getElementById('root')!); // notice the '!'
root.render(<App />);
Run Code Online (Sandbox Code Playgroud)
请注意,您需要如何通过感叹号(“!”)告诉打字稿您确定您的根不会为空。请参阅“客户端渲染 API 更新”中的更多信息
如果您将 TypeScript 与 React 一起使用,那么您需要导入支持类型并满足其他 TypeScript 条件的相对依赖项。所以尝试运行命令npm i --save-dev @types/react-dom
如果您正在使用不支持打字稿的依赖项,那么您可以使用此方法。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
25810 次 |
| 最近记录: |