Redux数据依赖管理

Mr.*_*ome 1 dependency-management reactjs redux

我试图理解如何构建我的redux应用程序,如果我需要从多个端点检索数据,这些数据依赖于彼此.

例如,假设我有一个列出事件详细信息的组件.我有一个事件ID,我需要获取该事件的所有信息,以及事件时间之间发生的所有事件.为了让我知道要搜索的事件,我需要获取所选事件的开始和结束时间.

如何构建组件来处理它?到目前为止,我在想的是:

({event, conflictingEvents,fetchEvent, fetchConflictingEvents}) => {
    if (!event || !conflictingEvents) {
        if (!event) fetchEvent();
        if (!conflictingEvents) fetchConflictingEvents(event.start, event.end)
            return (/* empty state */);
    }
    return (/* actual state */);
Run Code Online (Sandbox Code Playgroud)

上面的问题是它依赖于缓存而不创建无限循环.

Tim*_*imo 5

如果我理解正确,那么您正在尝试编排多个异步HTTP调用并随时更新应用程序的状态,对吗?


这项任务的惯用方法是使用异步操作.这允许您通过单个调度异步操作从React组件触发加载过程.然后,此异步操作将协调对后端的调用以及调用之间的数据映射.

您可以根据需要调度同步操作以更新应用程序的状态,例如向用户显示进度或显示最终结果.

因此,您完全封装了API调用的编排.呈现应用程序的React组件和缩减器都不需要知道调用的顺序,也不需要知道它们之间传递的信息.只有属于您所在国家/地区的呼叫的中间和最终结果才与他们相关.


作为异步操作的替代方法,您还可以查看传奇,它采用略有不同的方法解决问题.