react-router 用url传参时,如何刷新react组件数据?

发布于 2021-12-03 09:10:06 字数 446 浏览 785 评论 1

一开始我是使用componentWillReceiveProps, 后来发现在这里获取后台数据刷新store的话,会造成死循环,componentWillReceiveProps不断地发出后台请求。因为使用了redux,redux把组件的状态和属性关联起来了。

componentWillReceiveProps中获取数据更新store,这个行为本身就会让componentWillReceiveProps再次被调用。

哪怕通过if判断规避循环调用,这种写法也很糟糕。这让代码逻辑变得复杂难维护。

我的暂行方案是把store数据刷新行为绑定在Link标签的onClick事件上。这种做法的问题在于,通过代码跳转的时候,数据不能自动刷新——如browserHistory.push(url)

 

请问,如果在react-router中使用url传参,有什么比较好的刷新store数据的方式?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

囚你心 2021-12-05 14:45:26

找到一个很好的解决办法。

把路由信息封装到函数中,把store.dispatch以函数参数传递,就可以在onEnter的回调函数中调用action。

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文