Reactjs 尝试导入错误:';useRouteMatch';不是从';react路由器dom';

Reactjs 尝试导入错误:';useRouteMatch';不是从';react路由器dom';,reactjs,react-router,react-router-dom,Reactjs,React Router,React Router Dom,当我尝试从react router dom模块导入useRouteMatch时,出现此错误: 尝试导入错误:“useRouteMatch”未从导出 “反应路由器dom” 我是否有错误版本的react router dom模块 导入{ BrowserRouter作为路由器, 转换 路线,, 链接 用户路由匹配, useParams }从“反应路由器dom”我也有同样的问题,对我来说,我只需要更新我正在使用的react路由器的版本 useRouteMatch是随react路由器V5.1添加的 将您

当我尝试从react router dom模块导入useRouteMatch时,出现此错误:

尝试导入错误:“useRouteMatch”未从导出 “反应路由器dom”

我是否有错误版本的react router dom模块

导入{
BrowserRouter作为路由器,
转换
路线,,
链接
用户路由匹配,
useParams

}从“反应路由器dom”我也有同样的问题,对我来说,我只需要更新我正在使用的react路由器的版本

useRouteMatch
是随react路由器V5.1添加的

将您的package.json更新为
“react router dom”:“^5.1.2”,


删除节点模块并运行
npm install

钩子不能在类组件内部使用。您应该重构代码,使其具有功能性。使用useState和useEffect挂钩,您仍然能够利用组件级别的状态和组件生命周期


如果没有该组件的完整代码,我就无法使用您的示例实现这一点。

您无法在基于类的组件中调用钩子

render(){ 让{path,url}=useRouteMatch(); ... }


选中
react router dom
版本应兼容或大于“5.1”,以便您可以使用一些挂钩,如
useRouteMatch()
useHistory()

只需将您的
react router dom
版本更新为最新版本

npm i react-router-dom@latest

我解决了将
react router dom
更新为大于5.1的版本的问题

npm install react-router-dom@5.1.2 --save

别忘了用
npm start
再次启动应用程序以查看更改。

谢谢,我在想,伙计,我有React路由器V5,只需要获取最新版本:
npm I React路由器-dom@latest
获取最新版本。同时将react router更新为相同版本,或者,您可能会得到以下错误>错误:不变量失败:您不应该在外部使用演示如何诊断此错误。我的案例是忘记将react router更新为同一版本。如果您使用的是typescript,则需要更新@types并将@types/react router dom升级为^5.1.2Hmm。我只安装了react router dom,没有指定版本,但我看到它安装了旧版本4.3.1。为什么会这样?你能接受我最初的回答吗?因为那是我在帖子中回答你问题的答案。谢谢:)