【发布时间】:2019-09-23 09:20:44
【问题描述】:
您如何处理异步状态,例如在 redux 存储中加载部分加载的数据?
假设您有一个带有用户 reducer 的 redux 存储,其中包含每个加载的用户,并且您最初有 10 个完全加载的用户(他们的 id、名称等)+接下来的 10 个未完全加载的用户 id,需要在后面的步骤。
然后通过一个操作,您可以通过按 id 获取来加载第 11 个用户,并且需要显示该请求的加载。
您是否会将所有 20 个用户作为 1 个 javascript 对象/用户存储在一个数组中,其中每个条目都有一个 isLoading 变量并通过 id 从中读取/修改?或者这个用例还有其他方法吗?
最好的,谢谢你
【问题讨论】:
-
您可以制作一个 Http-interceptor,每次调用您的 Http 请求时都会调用它,一旦被调用,您需要调用加载程序,一旦收到响应,您需要停止它,这样您不需要为每个请求手动处理
-
默认的做法是让list组件获取包含id的基本用户数据列表,让detail组件通过id获取附加信息。您可以让详细信息组件在每次挂载时获取它,或者您可以首先检查附加信息是否已经可用(通过使用您建议的标志或仅通过检查某个字段是否存在,如果它是必填字段) .加载状态可以保持在细节组件的本地,这取决于它是否在挂载时实际获取数据。
-
@DhavalPatel 好主意,但后台也有很多正在进行的请求,我不想通过显示这些请求的加载指示器来混淆用户
-
@trixn 谢谢,只是为了澄清,你会在反应组件中提出请求吗?我不想这样做,而是在动作创建者中这样做,因为我也可能在另一个组件中使用它
标签: javascript reactjs redux