Javascript 尝试使用React路由器Dom时出现的问题

Javascript 尝试使用React路由器Dom时出现的问题,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我正在处理一个React项目,我从github帐户的存储库中克隆到了一台新电脑上 Failed to compile ./src/components/App/App.js Module not found: Can't resolve 'react-router-dom'. 我搜索了一个解决方案,找到了这个帖子 因此,我安装了react路由器dom,如本文答案中所述。但是现在,当我运行“npm run start”时,浏览器中会显示以下错误 Error: Invalid hook call

我正在处理一个React项目,我从github帐户的存储库中克隆到了一台新电脑上

 Failed to compile ./src/components/App/App.js Module not found: Can't resolve 'react-router-dom'.
我搜索了一个解决方案,找到了这个帖子

因此,我安装了react路由器dom,如本文答案中所述。但是现在,当我运行“npm run start”时,浏览器中会显示以下错误

Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
我检查了我是否有多个版本的React,以防问题实际上是第三点中描述的问题,但“npm ls React”仅显示一个版本的React

我肯定在我安装react路由器dom之前,钩子在我的项目中起作用,所以这不可能是第二种可能性

所以我几乎可以肯定问题就是第一点中描述的问题。React Dom和React Router Dom的版本之间存在冲突。 以下是项目的依赖项:

"dependencies": {
"@testing-library/jest-dom": "^5.11.9",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^12.8.1",
"@types/react-router-dom": "^5.1.7",
"axios": "^0.21.1",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.3",
"web-vitals": "^1.1.0"
  },

我试图重新安装React,但它不起作用,我仍然有这个问题。我希望我不必删除该项目并再次克隆它。请帮忙!!谢谢

您好,您能分享一下您使用React路由器的屏幕截图吗?如果您使用的路由器具有useLocation或useHistory或类似功能。您必须在基于组件的函数中使用它,而不是在泛型函数中使用它。