0

我有一个 Relay 应用程序,我想清除登录后显示的组件的缓存。我尝试将 currentRelay.store 传递到我的 Relay.Router 并实现 currentRelay.reset() 将该存储设置为新的 Relay.Environment ,然后在注销后调用它。由于某种原因,缓存仍然被存储。我还尝试在 componentDidMount() 中调用 this.props.relay.forceFetch({}) 和 this.forceUpdate()。我可以清除缓存的唯一方法是手动刷新页面。我想知道 Relay.Environment 中是否存在错误,或者我做错了。

4

1 回答 1

0

在环境文件中,只需从 QueryResponseCache 获取响应缓存,您可以使用 8.0.0 从中继运行时获取响应缓存,因此您可以检查中继运行时的版本并从中继运行时获取查询响应缓存

const cache = new QueryResponseCache({ size: 250, ttl: oneMinute });

在刚刚从本地存储中获取令牌之后,如果令牌为空,则执行 cache.clear() 例如,

 if (!token) {
cache.clear();
}
于 2020-01-28T10:11:21.467 回答