0

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

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

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

我搜索了几个博客,但它们只描述了“ToDo-List”的典型用例,这不适用于我的情况。最后,我只会有一个 Reducer-Case “SET_NEW_RESULTS_FROM_SERVER”,这有点让人觉得不靠谱。

4

1 回答 1

0

您应该对整个请求生命周期进行建模:

  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 }

于 2017-09-28T19:07:43.280 回答