【问题标题】: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】:
您应该为整个请求生命周期建模:
REQUEST_RESULTS_FROM_SERVER
REQUEST_RESULTS_FROM_SERVER_SUCCESS
-
REQUEST_RESULTS_FROM_SERVER_FAILURE。
为什么?加载指示器、向用户显示的错误消息以及其他原因。
存储区使用null 之类的东西初始化(因此您的视图可以在获取任何内容之前呈现)并且当响应包含有效数据时,您将其保存在那里(“一堆键值对”听起来很普通反对我)。
您的数据不一定需要自己的 reducer。当然取决于你的应用,我们不知道。
此外,当您在 redux 中通过 ajax 获取数据时,reducer 通常需要跟踪:
- 结果,响应中的负载
-
REQUEST_RESULTS_FROM_SERVER_FAILURE 的任何错误消息
- 无论请求是否仍在进行中 - 因此您的视图可以相应地进行调整
例子:
{
result: null,
error: null,
isLoading: false
}