我使用相同的组件为不同的路线。当路线改变,我希望组件被渲染。
<Switch>
<Route exact path="/" component={HomePage} />
<Route path="/hotels" component={HotelsPage} />
<Route path="/apartments" component={HotelsPage} />
</Switch>
当我将路由路径从/hotels
更改为/apartments
时,组件HotelsPage
不刷新。
对此,最酷的方法是什么?
3条答案
按热度按时间2sbarzqh1#
排序的方法之一是显式传递props,如下所示:
<Route path="/hotels" component={props => <HotelsPage {...props} />} />
xpcnnkqh2#
首先,您可以将路径聚合为一个类似
其次,
HotelsPage
组件在/hotels
、/apartments
上呈现,这与路径参数的情况类似,由此组件不会在路径改变时再次安装,而是更新,从而调用componentWillReceiveProps
生命周期函数,我们可以像这样实现
componentWillReceiveProps
DEMO
6l7fqoea3#
我想只需传递
useLocation().pathname
即可解决问题