Redux 数据请求,第二次进入页面,数据重复显示?

#1

使用技术:react react-router react-router-redux redux redux-thunk
场景描述:列表页与详情页。
在详情页的 componentWillMount 中 dispatch 获取数据

问题:
返回到列表页,第二次点击其他详情页的时候,应该是由于异步加载的原因,页面显示的数据还是原来的数据。
等到新的数据请求完成之后才会更新。

临时处理方案:
在详情页的componentWillUnmount 方法中 触发一个removeState的操作

感觉姿势不太对,求教,正常的处理方案
相关isues:dispatching in componentWillMount

github传送门

#2

请问最后是怎么解决的,我也遇到同样的问题

#3

我也这么解决的

#4

两年过去了 -_-!
类似的问题我想到两个解决方案

一、在 ajax 发起请求之前,(假设使用 thunk)
应该会 dispatch 一次 ‘fetch_pending’
由于 redux 是同步执行的,可以在对应的 reducer 里清理数据

二、redux 官网推荐的 “扁平化” 的方案
store 数据结构,各个详情页不共享数据 使用自己的编号做为 key

{
  detail: {
    id1: {},
    id2: {}
  }
}
#5

就是这样清理的,需要清理store里的数据,在willunmount进行销毁处理即可。