无法解析符号'Routes'

von4xj4u  于 2022-11-08  发布在  PyCharm
关注(0)|答案(6)|浏览(326)

我正在通过以下方式导入路线

import {Routes, Route, BrowserRouter} from 'react-router-dom'

我的包JSON是"react-router-dom": "^6.0.2",

我用的是Pycharm。
npm list react-router-dom返回-- react-router-dom@6.0.2
为什么会这样?我的前端是空白的。

xghobddn

xghobddn1#

当我升级到react-router-dom:6.0.2时,Intellij中的大多数导入都遇到了完全相同的问题“无法解析符号”。
如**@DLH所述,Jetbrains产品正在从<system directory>/jetbrains/intellij/javascript/typings而不是项目的node_modules文件夹中阅读包的类型文件**。
正如Jetbrains公司的Oksana Chumak所说:
IDE会将某些常用库得键入内容下载到其配置文件夹中,并使用它们来增强代码完成功能.

解决方案:

1.在Jetbrains产品中,按shift两次打开“搜索所有位置”窗口,搜索注册表并打开第一个结果。
1.在注册表中,查找typescript.external.type. definitions.packages项,并在该字段的 value 中,仅从值中删除****react-router-dom字段。
1.也可以转到文件-〉使缓存失效-〉选择“清除文件系统缓存和本地历史”-〉单击“失效并重新启动”
现在,jetbrains产品从项目的node_modules读取类型文件*,而不是从它的internal typings folder阅读。将来,它也不会尝试下载和使用其他项目的intellij react-router-dom类型
学分:支持@米尔伊斯梅利和@不喜庆的鸡帮助第三步。

emeijp43

emeijp432#

我在WebStorm中也遇到了同样的问题。当我在import语句中的'react-router-dom'上执行crtl-click时,我看到它似乎对应该注意哪个index.ts.d文件感到困惑。一个来自于我的项目的node_modules中安装的6.0.2版本,正如预期的那样。另一个位于C:\Users[me]\AppData\Local\JetBrains\WebStorm 2021.2\javascript\typings\react-router-dom\5.3.2\node_modules@types\react-router-dom\index. d. ts。
我刚刚从5.3.2版本中重命名了JetBrains的后一个文件,认为它现在已经过时了,之后它就像预期的那样工作了。这不是最漂亮的解决方案,我只是基本上确定它以后不会找到咬我屁股的方法。但至少现在,它工作了。

uemypmqf

uemypmqf3#

我们可以尝试移除node_modules并删除该文件夹。然后我们可以运行npm,这将再次重新安装这些软件包。
在此之后,我将尝试实现Router,并查看它是否能够自行解析,即使它抱怨找不到符号。
应该可以这样做:

<BrowserRouter>
  <Routes>
    <Route path='/*' element={ <App /> } />
  </Routes>
</BrowserRouter>
rfbsl7qr

rfbsl7qr4#

我解决了空白屏幕,这是因为版本,所以我不得不更改基于https://github.com/remix-run/react-router/blob/main/docs/getting-started/tutorial.md的代码,但我仍然有一个警告“无法解析符号'路由'”我使用的是最新版本的Webstrom。

import React from "react";
import {BrowserRouter as Router, Routes, Route } from "react-router-dom";
import { Container } from "react-bootstrap";
import Header from "./components/Header";
import Footer from "./components/Footer";
import HomeScreen from "./screens/HomeScreen";

const  App = () => {
  return(
    <Router>
      <Header />
      <main className='py-3'>
          <Container>
              <Routes>
                  <Route exact path="/" element={<HomeScreen />}/>
              </Routes>
          </Container>
      </main>
      <Footer />
    </Router>
  );
}

export default App;
l0oc07j2

l0oc07j25#

您必须安装套件的Typescript Stub
您有两个选择:
1.使用IDE安装

  • 将光标放在导入语句中的“react-router-dom”上
  • 按Alt+Enter组合键
  • 选择“安装TypeScript定义”以获得更好的类型信息

1.用npm安装它

  • 在项目中打开cmd
  • npm安装@类型/React-路由器-dom

不要忘记从首选项中删除IDE库|语言和框架|JavaScript语言|存储库(如果使用了选项1)

xggvc2p6

xggvc2p66#

在macOS上,一个可能的解决方案是:
在你的应用程序栏中,按文件-〉无效缓存-〉选择“清除文件系统缓存和本地历史”-〉点击“无效并重新启动”

相关问题