有个场景:
有两个列表页,使用 react router 分别映射为:/list1, /list2 。列表数据都是使用 redux state 的 dataList 字段。
有一个用户点了列表页 /list1 ,这时候会调用 action creator 发出一个 action (异步 action,使用 redux thunk middleware 或者 redux-api-middleware )。因为网络等原因导致接口请求数据很慢,于是用户等不及就通过导航条转到 /list2 界面去了,而且 list2 的数据也成功获取(然而因为是 spa ,/list1 的请求还在 pending 中),当原来的 /list1 请求的数据返回时,/list1 和 /list2 的数据都是 storeState.dataList ,因此会把 list2 的数据覆盖掉。
对于这种情况有没有什么好的解决方法?能在切换路由跳转的时候,丢弃掉不必要的 action ?
有一种解决方式是不同的页面在storestate中使用不同的命名空间,但是这样的话会有个问题就是页面跳转多次以后,内存里可能会有许多页面的state数据,可能会导致不必要的内存占用问题
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.