2

我一直在思考这个问题,但未能找到有关后续 api (ajax) 请求主题的任何信息。

假设我们有用户列表,其中一个已更新。更新用户后,我想检索整个更新的用户列表。

我的问题涉及两个动作:

  1. 更新用户
  2. 检索所有用户

我很清楚,React 组件启动视图操作以更新用户,从而通过调度程序产生 API 请求。我不清楚的是第二个检索用户的请求发生在哪里。

查看Facebook 的聊天示例...

  • 它是否发生在 Web API 实用程序中?
  • 商店在收到更新通知后会这样做吗?
  • 组件在收到更改通知后是否执行此操作?

目前我会在 API 中执行此操作,但我想知道是否有任何经过测试的模式可以解决此问题。

4

1 回答 1

1

您不需要执行两个 XHR 调用的两个操作。您实际上只需要一个导致两个 XHR 调用的操作。当心认为您应该引发一连串动作的倾向——这正是 Flux 旨在避免的反模式。

更新整个用户列表的副作用应该是UserStore响应USER_UPDATED操作所做的事情。

UserStore更新用户记录。这可以乐观地发生,也可以在服务器调用完成后发生。更新用户服务器端的 XHR 调用可以发生在updateUser()操作创建者或存储中。但是,您需要为该调用的成功/错误创建操作,以便商店可以适当地响应。

同样,下一步可以乐观地进行,也可以在您从服务器取回数据之后进行。在这种情况下,商店将进行 XHR 调用以检索用户列表以更新其持有的所有相关记录。

但与上一个 XHR 一样,您需要根据第二个 XHR 的成功或错误创建两个新操作。

创建新操作使您的应用程序非常灵活和有弹性。因此,如果任何其他商店需要知道这些 XHR 的结果,它就已经在接收该数据了。

如果我没有提到这一点,我会失职,如果您可以控制服务器端代码,您应该简单地构建一个端点来更新用户并返回新的用户列表——这将使客户端代码更简单,整个事情会更有效率。

于 2015-03-09T20:11:24.957 回答