Reactjs 尝试导入错误:';useRouteMatch';不是从';react路由器dom';
当我尝试从react router dom模块导入useRouteMatch时,出现此错误: 尝试导入错误:“useRouteMatch”未从导出 “反应路由器dom” 我是否有错误版本的react router 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添加的 将您
导入{
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。为什么会这样?你能接受我最初的回答吗?因为那是我在帖子中回答你问题的答案。谢谢:)