首页 > 解决方案 > Redux Saga 使用不同的数据同时多次调用相同的类型

问题描述

以下是我的应用程序的流程:

我必须获取列表中每个帖子的创建者的个人资料照片。

我有一个动作类型FETCH_USER_PROFILE。该操作包含userId要传递给 saga 函数内部的 api 调用。

考虑到 React 应用程序,post 的 profile 或 Avatar 组件根据createdByUserId它从父 post 组件接收到的 prop 调度 action。

我在减速机上有一把钥匙isFetchingUserDetails

每当FETCH_USER_PROFILE发送动作类型时,在它的 saga 中,我yield-put isFetchingUserDetails都是true.

当收到来自 api 的响应时,我yield-put isFetchingUserDetails作为false.

基于isFetchingUserDetails我在 Avatar 组件上显示加载器。

它适用于一个 api 调用,但是当同时发送多个相同动作类型的调度(userIds虽然不同)时,它会isFetchingUserDetails不断修改,因为 api 调用可能会由于网络限制而花费不均匀的时间。

因此,即使对于未获取响应的头像或配置文件也不显示加载程序,因为isFetchingUserDetails收到的第一个响应设置为 true。

请建议我在这种情况下可以做什么。

  1. 我应该制作足够的多种动作类型userId吗?这甚至可能吗?
  2. 我应该设置isFetchingUserDetails后缀为 userId 吗?但是如果用户数是10k+

标签: reduxredux-saga

解决方案


推荐阅读