react-router如何与redux配合,实现数据回滚?

ahmu
  • 87

最近使用react redux react-router做一个项目,遇到以下情况,首次进入A页面,后点链接进B页面,后再进C页面,A跟C页面相似,故共用同一个state,在进入C时,A原有的数据被覆盖,这时,如果用户执行返回操作,如何实现A那个页面的数据回滚?(首次离开A页面时,它的数据有部分通过ajax新加的,再次访问时若直接刷新A,则新数据与旧数据间会有差异)

回复
阅读 3.6k
2 个回答

A跟C页面相似,故共用同一个component ?

在进入C时,A原有的数据被覆盖这是不对的,离开A时,A就被销毁了.

"首次离开A页面时,它的数据有部分通过ajax新加的,再次访问时若直接刷新A,则新数据与旧数据间会有差异, " 因为react显示是数据驱动的, 所有东西都是从数据开始, 如果新旧数据有差异而不希望显示有差异, 可以通过在render方法里面加条件判断. 如果希望保留用户的一些习惯, 可以存在cookie里.

我想到两个方法:
1,Redux store 上相应的 state 改成用 WeakMap 或类似对象,数据与页面地址对应缓存;
2,可以抛弃 Redux,直接使用 React Router 或 History 的 pushState 存储 state object,用浏览器原生方法管理数据和页面地址对应关系。

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

宣传栏