PhpStorm可以';即使存在也无法解析包导入(react router dom)
我将React(16.12.0)与PhpStorm(2019.3.1)一起使用 我要导入的包是react router dom(5.1.2) 我将编写以下导入:PhpStorm可以';即使存在也无法解析包导入(react router dom),phpstorm,webstorm,node-modules,react-router-dom,jetbrains-ide,Phpstorm,Webstorm,Node Modules,React Router Dom,Jetbrains Ide,我将React(16.12.0)与PhpStorm(2019.3.1)一起使用 我要导入的包是react router dom(5.1.2) 我将编写以下导入: import { NavLink, Switch } from "react-router-dom"; 当我同时使用Switch和NavLink时,这两个包都由webpack/babel正确导入,页面正确呈现 然而,纯粹从IDE的角度来看,我得到了一个关于Switch的警告:无法解析符号“Switch” 这很奇怪,因为它显然就在那里,
import { NavLink, Switch } from "react-router-dom";
当我同时使用Switch和NavLink时,这两个包都由webpack/babel正确导入,页面正确呈现
然而,纯粹从IDE的角度来看,我得到了一个关于Switch的警告:无法解析符号“Switch”
这很奇怪,因为它显然就在那里,我签入了/node\u modules/react router dom
并且Switch.js
就在那里
奇怪的是,在PhpStorm的早期版本中(在几次更新、插件导入和其他更改之前),PhpStorm准确地找到了交换机导入
我最近没有更新react路由器dom,正在使用其最新的稳定版本
有没有关于为什么它可能缺少开关的想法
编辑:
我意识到这可能是因为PhpStorm在导入commonJS模块时遇到了困难
我尝试将Javascript编译方法从React JSX更改为ECMA 6。那没用
我还尝试为react router dom导入一些构建库,这有助于识别路由
奇怪地导入,但不是开关
我还尝试使PhpStorm缓存无效并重新启动应用程序,但也没有成功
编辑2:
根据回答,当光标位于react router dom
内时,我尝试使用option+enter(windows上的alt+enter)来安装typescript软件包,但我没有得到JetBrains网站上显示的建议操作:
它所建议的就是将单引号转换为双引号
另外,我已经安装了@types/react路由器dom。也许我还缺少另一个
编辑3:
正确的答案是安装
@types/react路由器
。出于某种原因,@types/react router dom
并不能解决这个问题。node_模块/react router dom/esm/react router dom.js
导出BrowserRouter
,HashRouter
,Link
和NavLink
,但不导出交换机,在那里没有明确定义。
为了更好地完成/类型提示,您可以为包安装Typescript存根:将光标放在导入语句中的“react router dom”
,点击Alt+Enter
,选择安装Typescript定义以获得更好的类型信息::
请看找到了答案!我安装了@types/react路由器,成功了!上述答案并不完整。您必须同时安装这两种@type。react router和react router dom,以便完成类型解析。对于react-Route之类的组件,我不知道Alt+Enter的Mac等效值是多少,所以我在preferences窗口下载了包,它解决了这个问题。