清除Relay.js app

时间:2016-08-16 22:01:06

标签: reactjs caching relayjs relay react-router-relay

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

1 个答案:

答案 0 :(得分:0)

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

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

在jutst之后,如果token为null,则从localstorage获取令牌,然后执行cache.clear() 例如

 if (!token) {
cache.clear();
}