【发布时间】:2019-11-14 18:47:58
【问题描述】:
在我的应用程序中,在 route1 上,我从 api 调用中获取项目列表。组件已连接,项目保存在redux store 并作为道具传递给组件。现在,在 route2 上,我再次需要此项目列表。
现在,当我们移动到 route2 时,我正在再次获取项目列表
重用已经处于全局状态的项目列表是否有意义?如果是,我们如何决定何时过期以及何时重新获取?
如果重复使用项目列表没有意义,我是否应该在离开 route1/加载 route2 时清除列表?因为否则,我在 route2 中的组件不能以列表在加载时为空的假设开始,我必须额外检查列表是否为空。这将使我的组件有点了解全局状态结构。
以不同的方式命名这些状态是否有意义,这样一个就不会干扰另一个?这似乎不对,因为两个功能是相同的,我们不希望为此增加全局状态的大小。
redux 或任何全局状态管理库不是处理这种状态的好选择吗?这似乎是一条路由的本地状态,不应干扰另一条路由上的本地状态,因此它不是真正的全局状态。我们应该只在 redux 中保留全局状态吗?
我之前一直在使用 useReducer 和 axios 调用来执行此操作。这种情况下的状态是每个组件/路由的本地状态,因此他们不必关心该状态是否已被其他人填充。这种方法在路由之间共享状态存在问题,但是本地状态问题得到了很好的处理。
【问题讨论】:
-
两个路由是否获取相同的项目列表?
-
是的,在这种情况下,它们确实会获取相同的项目列表。
标签: javascript reactjs redux react-context react-state-management