我试图在我的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客户端注销?
预先感谢
如果您需要清除缓存并且不想获取所有活动查询,则可以使用:
client.cache.reset()
client 成为您的阿波罗客户。
client
请记住,这不会触发onResetStore事件。
onResetStore