react-router-dom - TypeError:无法读取未定义的属性(读取“路径名”)
Posted
技术标签:
【中文标题】react-router-dom - TypeError:无法读取未定义的属性(读取“路径名”)【英文标题】:react-router-dom - TypeError: Cannot read properties of undefined (reading 'pathname') 【发布时间】:2021-11-24 17:58:01 【问题描述】:在使用 react-router-dom 5.3.0 时,我正在打开一个模式但没有更改路由,并且出现此错误。
我已经将 react-router-dom 降级到 5.2.0 并且没有出现这个错误。
非常感谢任何帮助:-)
【问题讨论】:
context.location
未定义
嗨@BENARDPatrick,你能再扩展一点吗,我不确定我的代码如何处理这个问题。
您看到第二个堆栈跟踪错误了吗?第 104 行 createPath(context.location)
?它调用函数createPath
,在其中,第 47 行的位置是未定义的。所以context.location
是未定义的......在你的代码中,你可以等待context.location
有一个想要的价值......
感谢@BENARDPatrick。所有这些错误都发生在我的 node_modules 中的一个包(我相信是 react-router-dom)中。所以我在想问题出在包上?
不管怎样,我刚刚将 react-router-dom 再次升级到最新版本,我实际上无法复制问题,让我们看看问题现在是否消失了。
【参考方案1】:
当我尝试使用 location.pathname
访问当前 URL 时,升级 react-router-dom 版本后,我遇到了同样的错误。
使用useLocation()
钩子解决了我的问题:
import useLocation from 'react-router-dom';
// getting current pathname with custom hook
const useName = () =>
const location = useLocation();
return location.pathname;
【讨论】:
以上是关于react-router-dom - TypeError:无法读取未定义的属性(读取“路径名”)的主要内容,如果未能解决你的问题,请参考以下文章
react-router-dom v5和react-router-dom v6区别
反应:'重定向'不是从'react-router-dom'导出的
尝试导入错误:“Switch”未从“react-router-dom”导出