【问题标题】:Jsx is used without importing reactjsx使用不用导入react
【发布时间】:2020-04-05 14:21:08
【问题描述】:

我收到了

使用jsx不导入react

WebStorm 的通知,即使我将react 库设为全局,通过:

我的webpack.config.js

        plugins: [
            new webpack.ProvidePlugin({
                React: "react"
            })
        ]

我的declarations.d.ts

import _React from "react";
declare global {
    const React: typeof _React;
}

没有错误,代码运行良好,但我不喜欢这种不必要的通知。如何告诉 WebStorm 我确实全局导入了react

【问题讨论】:

  • 尝试以这种方式导入包:...const React: import("react"); 并摆脱顶部导入。
  • 我不能在这里使用 rest 运算符。我也会收到错误TS2686: 'React' refers to a UMD global, but the current file is a module. Consider adding an import instead
  • 对不起,可能我表达的不正确,点不是要复制的,我只是用它们来表示之前有代码。基本上,以您正在执行的方式使用导入将阻止文件成为全局文件。以其他方式这样做应该可以解决问题。但是,至少在 VScode 中,只要安装了@types/react@types/react-dom npm 包,就不需要做任何额外的事情。
  • 我明白了!好吧,无论哪种方式都可以正常工作-正如我所说,他的代码按预期运行。但是我的ide 向我显示了这个错误。这是WebStorm 特定的。

标签: reactjs webpack webstorm typescript-declarations


【解决方案1】:

只需在 设置 | 中关闭检查即可编辑 |检查 | JavaScript 和 TypeScript |导入和依赖,缺少 JSX 的 React 导入

【讨论】:

  • 截至 2020 年 10 月,在当前版本的 WebStorm(或其他 JetBrains 产品)即 2020.2 中,该设置实际上已移至:设置 |编辑 |检查 | JavaScript 和 TypeScript |导入和依赖 |缺少 JSX 的 React 导入
  • 这不是一个好的解决方案,因为现在您将无法检测到这个问题。
  • 考虑到具体情况,这是最好的解决方案,特别是如果您使用 Preact 等,因为 JetBrains 拒绝支持其他 JSX 框架。
  • 如果您使用 React 17 和不再需要 React 导入的新运行时也很有用。
猜你喜欢
  • 2021-02-08
  • 2020-03-30
  • 2016-08-09
  • 2016-05-16
  • 1970-01-01
  • 2018-03-27
  • 2017-07-23
  • 2018-07-17
  • 2020-08-19
相关资源
最近更新 更多