【发布时间】:2018-09-09 17:54:10
【问题描述】:
我认为这是一个非常常见的场景...我正在构建一个由某些数据源驱动的组件仪表板。视图顶部将是一系列过滤器(例如日期范围)。更新日期范围时,屏幕上的组件需要根据所选范围更新其数据。这反过来会迫使从属于该选择器的各个组件需要根据新选择的范围获取新数据(异步操作/XHR)。
屏幕上可能有许多组件,用户可能希望添加/删除可用的显示,因此它不像总是刷新所有组件的数据那样简单,因为它们可能存在也可能不存在。
我认为处理此问题的一种方法是在选择新日期范围时分派的操作是确定屏幕上的组件(派生自 Store)并分派异步操作以获取这些组件的数据。看来 DATE_CHANGED 操作需要做很多工作。
另一种选择可能是检测每个组件的 store.subscribe() 回调中的日期范围变化。这似乎解耦了从导致这种情况发生的操作中获取数据的逻辑。但是,我认为在调度时调度是不好的做法(甚至是错误)。当然我可以将它包装在 setTimeout 中,但这也感觉不对。
想到的第三件事就是直接在组件的 store.subscribe() 中执行 fetch 调用,并在它们返回时进行调度,但我认为这会破坏连接模型。
这似乎是一种根据状态变化进行获取的常见模式,但我不知道将它们放在哪里最好。关于上述问题的任何好的文档/示例?
【问题讨论】: