我在PhpStorm(2019.3.1)中使用React(16.12.0)。
我要导入的包是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
中签入,Switch.js
在那儿。
奇怪的是,在PhpStorm的先前版本上(在进行几次更新和插件导入以及其他更改之前,PhpStorm准确找到了Switch导入。
我最近尚未更新react-router-dom,并且正在使用其最新的稳定版本。
关于为什么可能缺少Switch的任何想法?
编辑:我已经意识到这可能是因为PhpStorm难以导入commonJS模块。
我尝试将Javascript编译方法从React JSX更改为ECMA6。这没有用。
[我还尝试导入一些用于react-router-dom的构建库,并且该库用于识别Route
导入很奇怪,但不能识别Switch
。
我还尝试使PhpStorm缓存无效并重新启动应用程序,但那也不起作用。
node_modules/react-router-dom/esm/react-router-dom.js
导出BrowserRouter
,HashRouter
,Link
和NavLink
,但不导出Switch
,此处未明确定义。为了更好地完成/提示类型,您可以为该软件包安装Typescript存根:将光标放在import语句中的"react-router-dom"
上,单击Alt+Enter
,选择安装TypeScript定义以获取更好的类型信息::