PhpStorm 无法解析包导入,即使它存在(react-router-dom)

2024-01-07

我正在使用 React (16.12.0) 和 PhpStorm (2019.3.1)。

我导入的包是react-router-dom(5.1.2)

我将编写以下导入:

import { NavLink, Switch } from "react-router-dom";

这两个包都由 webpack/babel 正确导入,并且当我同时使用 Switch 和 NavLink 时页面正确呈现。

然而纯粹从 IDE 的角度来看,我收到了有关 Switch 的警告:Cannot resolve symbol 'Switch'

这很奇怪,因为它显然在那里,而且我签入了/node_modules/react-router-dom and Switch.js有没有。

奇怪的是,在 PhpStorm 的早期版本(在几次更新和插件导入以及其他更改之前),PhpStorm 准确地找到了 Switch 导入。

我最近没有更新react-router-dom,并且正在使用其最新的稳定版本。

关于为什么它可能缺少 Switch 有什么想法吗?

EDIT:我意识到这可能是因为 PhpStorm 难以导入 commonJS 模块。

我尝试将 Javascript 编译方法从 React JSX 更改为 ECMA 6。但这不起作用。

我还尝试导入一些用于react-router-dom的构建库,这有助于识别Route奇怪地导入但不是Switch.

我还尝试使 PhpStorm 缓存无效并重新启动应用程序,但这也不起作用。

EDIT 2:根据答案,当我的光标位于react-router-dom尝试安装 typescript 包,但我没有得到与 JetBrains 网站上显示的相同的建议操作:https://www.jetbrains.com/help/webstorm/configuring-javascript-libraries.html https://www.jetbrains.com/help/webstorm/configuring-javascript-libraries.html

它所建议的是将单引号切换为双引号。

另外我已经安装了@types/react-router-dom。也许我还缺少另一件事?

EDIT 3:正确答案是安装@types/react-router。因为某些原因@types/react-router-dom欺骗性地不是解决这个问题的方法。


node_modules/react-router-dom/esm/react-router-dom.js出口BrowserRouter, HashRouter, Link and NavLink,但不导出Switch,那里没有明确定义。 为了更好地完成/类型提示,您可以为包安装 Typescript 存根:将光标放在"react-router-dom"在导入语句中,点击Alt+Enter, 选择安装 TypeScript 定义以获得更好的类型信息::

See https://www.jetbrains.com/help/webstorm/2019.3/configuring-javascript-libraries.html#ws_jsconfigure_libraries_ts_definition_files https://www.jetbrains.com/help/webstorm/2019.3/configuring-javascript-libraries.html#ws_jsconfigure_libraries_ts_definition_files

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PhpStorm 无法解析包导入,即使它存在(react-router-dom) 的相关文章

随机推荐