useLocation 中的重复路径名问题
Duplicate pathname issue in useLocation
我正在制作一个带有 React 和 React 路由器的网络。
问题是useLocation()中的pathname有上一页的记录和当前页的记录
例如,主屏幕上的'/'和另一个页面上的'/business'页面形成对比。
此外,如果您刷新 /business 页面并转到“/info”,“/business”和“/info”会一起出现。
如果你看我上面贴的图,每当发生滚动事件时,我都会尝试判断pathname(同样是url变量)变量是否为'/'并根据逻辑编写布尔值。
但是,有些情况下,在控制台中,语句中,旧路径名和当前路径名有两次执行。
如果只把url或者url带到控制台,显示的是当前结果值,但是如果在scroll事件中提示的话,上一页的历史记录其实也带过来了window.
有人知道解决这个问题的方法吗?
您可能需要 exact 关键字:
When true, the active class/style will only be applied if the location is matched exactly.
<Switch>
<Route exact path="/"><Home/></Route>
<Route exact path="/accounts/login"><Login/></Route>
<Route exact path="/accounts/profile"><Profile/></Route>
</Switch>
可能是因为您定义了“/”路由,导致 React Router 无法准确解释 URL。
是的,将 prop 应用于每个 Route
可能有点矫枉过正,但它保证没有错误的余地。
我正在制作一个带有 React 和 React 路由器的网络。
问题是useLocation()中的pathname有上一页的记录和当前页的记录
例如,主屏幕上的'/'和另一个页面上的'/business'页面形成对比。
此外,如果您刷新 /business 页面并转到“/info”,“/business”和“/info”会一起出现。
如果你看我上面贴的图,每当发生滚动事件时,我都会尝试判断pathname(同样是url变量)变量是否为'/'并根据逻辑编写布尔值。
但是,有些情况下,在控制台中,语句中,旧路径名和当前路径名有两次执行。
如果只把url或者url带到控制台,显示的是当前结果值,但是如果在scroll事件中提示的话,上一页的历史记录其实也带过来了window.
有人知道解决这个问题的方法吗?
您可能需要 exact 关键字:
When true, the active class/style will only be applied if the location is matched exactly.
<Switch>
<Route exact path="/"><Home/></Route>
<Route exact path="/accounts/login"><Login/></Route>
<Route exact path="/accounts/profile"><Profile/></Route>
</Switch>
可能是因为您定义了“/”路由,导致 React Router 无法准确解释 URL。
是的,将 prop 应用于每个 Route
可能有点矫枉过正,但它保证没有错误的余地。