Reactjs 如何检测是否设置了react路由器?

Reactjs 如何检测是否设置了react路由器?,reactjs,react-router,react-router-dom,Reactjs,React Router,React Router Dom,我正在第三方组件中使用react router dom hook useLocation() 默认情况下,此组件行为取决于当前路由,但也可以在没有react router的应用程序中使用(组件的用户不应该关心它) 问题在于,当组件在react router作用域之外使用时,它会抛出一个错误: Cannot read property 'location' of undefined 我的问题是如何知道我是否可以使用useLocation()钩子(如何知道组件是否在react路由器上下文中) 对于

我正在第三方组件中使用react router dom hook useLocation()

默认情况下,此组件行为取决于当前路由,但也可以在没有react router的应用程序中使用(组件的用户不应该关心它)

问题在于,当组件在react router作用域之外使用时,它会抛出一个错误:

Cannot read property 'location' of undefined

我的问题是如何知道我是否可以使用useLocation()钩子(如何知道组件是否在react路由器上下文中)

对于@Krzysztof Cieslinski提出的类似问题,最简单的解决方案是将
useLocation()
钩住try/catch块:

let path=''
试一试{
path=useLocation().pathname
}捕获(e){}
以下各项可能重复: