首页 > 解决方案 > 防止在 Redux 中显示另一个对象的数据

问题描述

在我的React/Redux应用程序中,我有一个timelineReducer允许我集中管理不同对象的时间线,例如项目、任务等。

最近发现了一个我以前没有注意到的错误,因为它需要一系列环境才能发生。

当我请求父对象的时间线时,我调用了一个动作,该动作进行 API 调用并将timeline: []数组设置在timelineReducer.

但是,如果我请求Project A并迅速改变主意并进入Task B并且当时恰好有一个缓慢的网络连接,我最终会得到属于Project A即使我在Task B's 页面中的时间线数据。

我确实有我在componentWillUnmount()生命周期方法上执行的清理例程,但看起来清理例程在网络响应到达之前完成并timeline: []在我的减速器中设置了数组,我最终得到了错误的数据。

有没有人遇到过这样的情况?在我尝试重新发明轮子之前,我想看看在这些情况下是否有标准方法。

标签: reactjsreduxreact-redux

解决方案


我遇到过类似的情况,我添加了一个参考对象以及时间线[],就像{project:'A',timeline:[]}我的有效载荷到减速器一样。所以这意味着这个时间线是参考项目 A 并且使用这个数组的任何组件将首先验证项目的值以确认其项目 A 的数组


推荐阅读