使用 Apollo 客户端注销后重置存储
·
问题:使用 Apollo 客户端注销后重置存储
我正在尝试在我的 react-apollo 应用程序中注销后重置商店。
所以我创建了一个名为“logout”的方法,当我点击一个按钮时调用它(并通过'onDisconnect'道具传递)。
为此,我尝试遵循以下示例:https://www.apollographql.com/docs/react/recipes/authentication.html
但在我的情况下,我希望 LayoutComponent 作为 HOC(并且它没有 graphQL 查询)。
这是我的组件:
import React, {Component} from 'react';
import { withApollo, graphql } from 'react-apollo';
import { ApolloClient } from 'apollo-client';
import AppBar from 'material-ui/AppBar';
import Sidebar from 'Sidebar/Sidebar';
import RightMenu from 'RightMenu/RightMenu';
class Layout extends Component {
constructor(props) {
super(props);
}
logout = () => {
client.resetStore();
alert("YOUHOU");
}
render() {
return (
<div>
<AppBar title="myApp" iconElementRight={<RightMenu onDisconnect={ this.logout() } />} />
</div>
);
}
}
export default withApollo(Layout);
这里的问题是未定义“客户端”,我无法正确注销。您有什么想法可以帮助我处理这种情况或从 apollo 客户端注销的示例/最佳实践吗?
提前致谢
解答
如果您需要清除缓存并且不想获取所有活动查询,您可以使用:
client.cache.reset()
client是您的 Apollo 客户端。
请记住,这不会触发onResetStore事件。
更多推荐
所有评论(0)