uda*_*dai 14

我提出了这个问题并回答了自己,因为我认为它会帮助那些面临类似问题的人.

请导入React您的代码导入语句:

import * as React from 'react';
Run Code Online (Sandbox Code Playgroud)

参考:

https://github.com/Microsoft/TypeScript/issues/14118


hev*_*ev1 11

随着 React 17 中引入新的 JSX 转换,不再需要导入React每个使用 JSX 的文件。如果您使用的是 TypeScript,请编辑您的jsx编译器选项tsconfig以使用"react-jsx".

{
    "compilerOptions": {
        "jsx": "react-jsx"
    }
}
Run Code Online (Sandbox Code Playgroud)

旧的默认转换 ( "jsx": "react") 将 JSX 编译为对 的调用React.createElement,因此React必须在其工作范围内。react-jsx然而,转换使用该函数_jsx并自动为其插入导入。React进行此更改后,可以安全删除未使用的导入。

另请参阅: https: //legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html


TAR*_*RJU 6

不需要使用 * 导入所有内容

它只是缺少并且需要导入的反应,以便可以理解 JSX。

所以只要按照

import React from 'react';
Run Code Online (Sandbox Code Playgroud)