我有一个名为LinkButton
的元素。在此行const location = useLocation();
中,然后进行检查,如果当前路由和to
值相同,则将其呈现为div而不是{{1} }
但是,我还希望按钮独立于位于路由器内,如果没有,则默认默认为div,以进行测试而不必将组件包装在模拟路由器中。
问题在于,<Link />
会在路由器HOC之外尝试时被吐出来。
基本上,我需要某种方式说“如果它在Cannot read property 'location' of undefined
内,则执行此操作……否则执行此操作”而不会引发错误。我无法将<Router />
移到任何地方或将其放入try / catch中,而不会破坏钩子的基本原理。
我的最初方法是不打扰useLocation,而只使用window.location,但这会带来自己的问题,即useLocation()
问题,这进一步使我想在不位于HOC。
有什么想法吗? TIA