5

我想在我的反应本机应用程序中启用缓存。我正在使用带有现代中继的 GraphQL。我发现在现代中继中默认情况下不启用缓存,但它们已经暴露RelayQueryResponseCacherelay-runtime中,我们可以将其添加到fetchQueryAPI 中的函数中。我在这里这里阅读了关于它的讨论,但还没有看到任何开始的例子。有人可以帮我解决这个问题吗?

编辑:

好的,我想出了一个解决方案。我认为它遗漏了一些东西,但到目前为止它满足了我们的需求。我注意到将任何内容传递QueryRenderercacheConfig结果,然后将该值传递给fetchQuery我环境中的函数。因此,我创建了一个Component通过某种关系加载数据并将其解析为json查询请求的正确结构的方法。然后我将它返回到状态。然后我用创建的“缓存加载器”扩展了我的Component内容。QueryRenderer现在当componentWillMount()被调用时,我要求缓存数据。在此期间我已经设置this.state.loading = true,所以我能够处理加载状态。从数据库读取是异步的。我也在其他组件中使用这个类。每个人都处理其缓存数据。我只是把它传给QueryRenderer.

但是,我认为这需要为每个Component受此缓存支持的逻辑添加一些额外的逻辑。可能将缓存解析器作为cacheConfig并立即在环境中解析缓存的数据会更干净。

4

0 回答 0