3

在 FLUX 应用程序中,通过诸如初始化之类的操作将给定的数据集填充到存储中。如果出现以下情况怎么办:

  1. 商店应该增量初始化。(一次添加一个用户)。
  2. 如果用户已经在商店中,除非已经有一段时间,否则不要再次获取用户。

在不同的动作创建者中发出 HTTP 请求似乎最终会收到比您想要的更多的请求。您需要两级缓存吗?一个在动作 HTTP API 层(动作创建者)和一个在商店?这似乎不是多余的吗?

4

2 回答 2

0

我会将所有这些逻辑保留在商店中。关键是为获取、接收和错误设置单独的操作创建者。

  1. 适当地调用增量获取操作。存储处理获取操作,检查是否存在于缓存中。如果没有,它会提出请求。
  2. API 响应被推送到接收操作中。当在商店中处理此操作时,它会以适当的方式将其添加到缓存中,然后启动您的商店更改事件。
  3. 如果响应是错误的,请将其推送到错误操作创建器中,以便您可以在其他地方处理它。

如果在响应返回之前有可能执行多个 fetch 操作,您可以像 Micah 一样将占位符推送到缓存中。

于 2014-12-09T21:10:31.960 回答
0

我们一直在处理商店中的缓存和延迟加载。userStore.getUser 如果可用则返回缓存的用户,否则直接调用 api 或调用 action creator 来发出 api 请求

我们尚未决定的一件事是跟踪这些待处理请求的正确方法。现在我们只是在 store 中创建一个占位符对象,然后在我们收到数据后填充它,但是我们无法轻松查看给定对象的请求是挂起还是完成

于 2014-12-09T19:09:16.807 回答