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

itwriter 发布于 2017/02/28 17:52
阅读 1K+
收藏 0

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

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

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

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

 

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

加载中
0
itwriter
itwriter

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

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

 

返回顶部
顶部