小编典典

使用Apollo客户端注销后重置存储

reactjs

我试图在我的react-apollo应用程序注销后重置商店。

因此,我创建了一个称为“注销”的方法,该方法在单击按钮时调用(并通过“ 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客户端注销?

预先感谢


阅读 273

收藏
2020-07-22

共1个答案

小编典典

如果您需要清除缓存并且不想获取所有活动查询,则可以使用:

client.cache.reset()

client 成为您的阿波罗客户。

请记住,这不会触发onResetStore事件。

2020-07-22