避免在 Relay 中缓存

Avoid caching in Relay

https://facebook.github.io/relay/docs/thinking-in-graphql.html 文章中详细解释了中继缓存的工作原理。

但它没有描述如果我想使用相同的查询从服务器数据刷新我的本地存储该怎么办。根据 Relay 逻辑,它将查看查询,发现它在本地已填充,并从本地存储中找到 returns 数据。

但是如何避免缓存并强制中继向服务器发送新请求?

您可以使用 forceFetch API.

让 Relay 发送重新获取所有数据的请求

例如,如果您的 React 组件中有一个用于刷新数据的按钮,并且处理函数是 refreshData,请在该函数中调用 forceFetch

refreshData() {
    this.props.relay.forceFetch();
}