【问题标题】:How to structure redux store for server response如何为服务器响应构建 redux 存储
【发布时间】:2018-03-10 02:22:51
【问题描述】:

这个问题可能被认为是“基于意见的”,但我只是在这里寻找灵感,所以在这里:

在我的应用程序中,我从服务器请求数据。这些数据不是列表或任何东西,它基本上只是一堆键值对,然后应该显示给用户。这里描述了一个类似的用例Should I store search result in redux store?

现在的问题是:如何将这些数据存储在 redux-store 中。它有自己的减速器吗?还是我将其存储在某种基于键值的 AppState-Store 中?

我搜索了几个博客,但它们只描述了“待办事项列表”的典型用例,这不适用于我的案例。最后我只会有一个 Reducer-Case "SET_NEW_RESULTS_FROM_SERVER",感觉有点不靠谱。

【问题讨论】:

标签: javascript redux flux redux-store


【解决方案1】:

您应该为整个请求生命周期建模:

  1. REQUEST_RESULTS_FROM_SERVER
  2. REQUEST_RESULTS_FROM_SERVER_SUCCESS
  3. REQUEST_RESULTS_FROM_SERVER_FAILURE

为什么?加载指示器、向用户显示的错误消息以及其他原因。

存储区使用null 之类的东西初始化(因此您的视图可以在获取任何内容之前呈现)并且当响应包含有效数据时,您将其保存在那里(“一堆键值对”听起来很普通反对我)。

您的数据不一定需要自己的 reducer。当然取决于你的应用,我们不知道。

此外,当您在 redux 中通过 ajax 获取数据时,reducer 通常需要跟踪:

  • 结果,响应中的负载
  • REQUEST_RESULTS_FROM_SERVER_FAILURE 的任何错误消息
  • 无论请求是否仍在进行中 - 因此您的视图可以相应地进行调整

例子:

{ result: null, error: null, isLoading: false }

【讨论】:

    猜你喜欢
    • 2012-01-22
    • 2020-02-12
    • 2017-10-18
    • 2021-12-04
    • 2020-08-14
    • 2021-11-08
    • 2020-03-21
    • 1970-01-01
    • 2020-08-09
    相关资源
    最近更新 更多