在Relay Modern中设置多个网络层

jay*_*hah 5 relay graphql relayjs relaymodern

我正在使用一个带有接力现代的反应原生应用程序.

目前我们的应用程序的fetchQuery实现,只是在网络上进行提取(如https://facebook.github.io/relay/docs/en/network-layer.html),

虽然有可能是另一个本地网络层,如https://github.com/relay-tools/relay-local-schema,它返回来自本地数据库的数据,如sqlite/realm.

有没有办法从本地网络层设置离线优先响应,然后自动请求到真实网络,它还用更新的数据填充存储(以及写入本地数据库)?还应该/他们可以共享同一家商店吗?

根据Network.create()的要求,它应该返回包含有效负载的promise,似乎没有可能返回多个值.

任何想法/帮助/建议表示赞赏.

Kik*_*ijo 0

您想要实现的目标很复杂,并且会采用简单的方法,即长时间缓存。

您可能知道,现代中继使用本地存储及其您正在获取的数据的精确副本,您可以根据您的需要配置此存储缓存,而不会对突变进行缓存。

要了解如何实现自定义 Relay 现代或经典网络层的最佳库,您可以在https://github.com/nodkz/react-relay-network-modern中找到

我的建议:设置你的缓存并观察你的请求......(你会喜欢它的)

中继思维, https://facebook.github.io/relay/docs/en/thinking-in-relay.html