react-router 用url传参时,如何刷新react组件数据?
一开始我是使用componentWillReceiveProps, 后来发现在这里获取后台数据刷新store的话,会造成死循环,componentWillReceiveProps不断地发出后台请求。因为使用了redux,redux把组件的状态和属性关联起来了。
componentWillReceiveProps中获取数据更新store,这个行为本身就会让componentWillReceiveProps再次被调用。
哪怕通过if判断规避循环调用,这种写法也很糟糕。这让代码逻辑变得复杂难维护。
我的暂行方案是把store数据刷新行为绑定在Link标签的onClick事件上。这种做法的问题在于,通过代码跳转的时候,数据不能自动刷新——如browserHistory.push(url)
请问,如果在react-router中使用url传参,有什么比较好的刷新store数据的方式?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
找到一个很好的解决办法。
把路由信息封装到函数中,把store.dispatch以函数参数传递,就可以在onEnter的回调函数中调用action。