React router 4 带参数的路由,从"/album?id=1"访问"/album?id=2"该如何重新渲染?
<HashRouter>
<main>
<Switch>
<Route exact path="/" component={IndexPage} />
<Route path="/login" component={Login} />
<Route path="/album" component={Album} />
</Switch>
</main>
</HashRouter>
如题,定义了一个名为album的route,
然后在此路由的component的componentDidMount里,
获取到this.props.location.search,即"?id=1",通过异步获取数据然后更新store,触发此组件的re-render,
这个组件里面有个链接为"/album?id=2"的Link,由于只改变了查询字段,没有触及pathname的更新,所以此链接能点,history也会更新,componentDidUpdate也能看到props.location.search改变,但是store并不更新,所以组件也不会re-render...
所以我该在什么地方更新store呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可以使用componentWillReceiveProps重新渲染,这个钩子函数会在组件传入的 props 发生变化时调用。
首先你的/album路由需要改造一下:
在Album中