React native 中继现代缓存示例

React native 中继现代缓存示例,react-native,graphql,relay,react-relay,React Native,Graphql,Relay,React Relay,我想在我的react本机应用程序中启用缓存。我正在使用GraphQL和Relay modern。我发现在relay modern中默认情况下没有启用缓存,但它们从中继运行时中公开了RelayQueryResponseCache,我们可以将其添加到API中的fetchQuery函数中。我阅读了有关讨论,但还没有看到任何开始的例子。有人能帮我吗 编辑: 好的,我想出了一个解决办法。我认为它遗漏了一些东西,但到目前为止,它满足了我们的需要。 我注意到,将任何内容传递到QueryRenderer到cac

我想在我的react本机应用程序中启用缓存。我正在使用GraphQL和Relay modern。我发现在relay modern中默认情况下没有启用缓存,但它们从
中继运行时
中公开了
RelayQueryResponseCache
,我们可以将其添加到API中的
fetchQuery
函数中。我阅读了有关讨论,但还没有看到任何开始的例子。有人能帮我吗

编辑:

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


然而,我认为这需要为该缓存支持的每个
组件添加一些额外的逻辑。可能将缓存解析程序作为
cacheConfig
传递,并立即在环境中解析缓存数据会更干净

我写了一篇关于它的博文:好的,这很好,但是你如何更新数据呢?快速响应很好,因为您可以立即返回缓存,但不使用新数据刷新缓存,除非对数据进行变异,否则没有这种新数据。当您执行此操作时,只需从服务器获取数据。如果代码编写正确,中继会很好地更新数据。如果你想对突变做出更快的反应,试着用乐观的反应来模仿它: