请求redux中的响应模式

时间:2017-12-30 09:55:14

标签: reactjs redux react-redux redux-saga

我想知道在Redux中处理请求/响应的正确方法是什么。

我们目前的设置如下:

  1. 组件显然已连接到Redux并可以分派操作。
  2. saga侦听特定操作,并执行Web套接字请求。
  3. 另一个saga侦听传入的websocket消息,并使用传入的数据更新存储。(通过调度它自己的操作)
  4. 除了了解特定响应到达的确切时刻的特定用例外,这种方法效果很好。

    这尤其成问题,因为有些请求不返回任何有意义的数据,它们只返回操作成功的状态。

    我们目前正在讨论两种解决方案:

    1. 使用调度组件的动作发送回调,响应触发回调,这对redux来说感觉非常反模式。
    2. 在商店中维护所有传出请求的状态,允许调度组件为特定操作提供UUID,以便该组件可以查询商店以查看响应是否到达,还需要重置传入响应或维护组件中已解决此特定响应的状态。无论如何,很多开销和潜在的错误。
    3. 通常的用例是在响应到达时打开弹出窗口。

2 个答案:

答案 0 :(得分:0)

我在回复中使用了promise,并在完成请求时链接了所需的不同请求 这篇Medium文章帮助了我。它涉及 Think vs Saga vs Observable vs Redux promise中间件的实现。
还没试过saga。

答案 1 :(得分:0)

我认为你达到了需要更好的国家管理的程度。请记住,Redux是关于存储数据和数据流的。这不完全是关于国家管理。我建议阅读关于状态机的内容。我可以识别您的请求的不同状态,并且可以使用状态机轻松管理它们。这是关于主题http://krasimirtsonev.com/blog/article/managing-state-in-javascript-with-state-machines-stent

的文章