react-router当浏览器后退或前进操作时如何更新列表中的数据?

如果前进后退操作是介于两个声明的不同的路由组件间,那么由于会触发组件的componentWillMount,从而加载对应后台数据。

但是,在列表页面("list/:page"),由于前进后退只是更改了hash中的page参数,并没有引起组件切换,在此场景下, 如何优雅的实现列表数据的对应更新?

阅读 3.3k
3 个回答

通过获取url或者hash,通过判断动态的更新你的state。
像这种组件没有移除和重新装在的情况,组件无法自动更新。

不知你有没有使用 redux, 如果使用了可以监听 LOCATION_CHANGE, 我目前是这样做的。

import { LOCATION_CHANGE } from 'react-router-redux';

其实你留意观察你会发现,当你切换路由的时候都会(anyway)触发 @@router/LOCATION_CHANGE 这样一个 action type

可以考虑用redux,把数据存储到store中,提取路由的page的参数,去判断使用相对应的数据

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏