为不直接修改状态的 API 调用创建 Redux 操作
Creating Redux actions for API calls that don't modify the state directly
我们正在开发一个使用 Redux 来管理状态的 React 应用程序。总的来说,Redux 很好地为我们服务,但在应用程序的一部分,我们正在使用 WebSockets 更新我们的应用程序状态,以允许所有连接的用户拥有最新版本的数据。
看起来像这样:https://i.stack.imgur.com/uNAsk.png
在常规的 Redux 应用程序中,我们将有 3 个操作:ACTION_LOADING、ACTION_SUCCESS 和 ACTION_FAILURE 来处理 HTTP 请求。在这种情况下,状态会在从 WebSocket 接收到新数据后自动更新。
使用 Redux 操作 (thunk) 将此数据 post 发送到服务器是否正确,即使它不修改状态,还是在这些情况下不使用 Redux 调用服务更好?
如果我们创建操作,您会推荐什么模式?
谢谢。
出于以下几个原因,我建议将其包装在 thunk 中:
- 发起一个不会最终改变状态(无论出于何种原因)的动作并没有什么致命的。
- 即使您在成功的情况下没有做任何事情 POST(因为所有操作稍后都会通过来自服务器的消息进行),您仍然可能需要调度操作以防万一POST 由于某种原因失败。
- 它允许您的组件使用一种一致的机制(动作分派),而不是有时一种方式,有时另一种方式。
我们正在开发一个使用 Redux 来管理状态的 React 应用程序。总的来说,Redux 很好地为我们服务,但在应用程序的一部分,我们正在使用 WebSockets 更新我们的应用程序状态,以允许所有连接的用户拥有最新版本的数据。
看起来像这样:https://i.stack.imgur.com/uNAsk.png
在常规的 Redux 应用程序中,我们将有 3 个操作:ACTION_LOADING、ACTION_SUCCESS 和 ACTION_FAILURE 来处理 HTTP 请求。在这种情况下,状态会在从 WebSocket 接收到新数据后自动更新。
使用 Redux 操作 (thunk) 将此数据 post 发送到服务器是否正确,即使它不修改状态,还是在这些情况下不使用 Redux 调用服务更好?
如果我们创建操作,您会推荐什么模式?
谢谢。
出于以下几个原因,我建议将其包装在 thunk 中:
- 发起一个不会最终改变状态(无论出于何种原因)的动作并没有什么致命的。
- 即使您在成功的情况下没有做任何事情 POST(因为所有操作稍后都会通过来自服务器的消息进行),您仍然可能需要调度操作以防万一POST 由于某种原因失败。
- 它允许您的组件使用一种一致的机制(动作分派),而不是有时一种方式,有时另一种方式。