Reset store after logout with Apollo client

前端 未结 4 2002
深忆病人
深忆病人 2021-02-19 07:46

I\'m trying to reset the store after logout in my react-apollo application.

So I\'ve created a method called \"logout\" which is called when I click on a button (and pas

4条回答
  •  無奈伤痛
    2021-02-19 07:59

    You were very close!

    Instead of client.resetStore() it should have been this.props.client.resetStore()

    withApollo() will create a new component which passes in an instance of ApolloClient as a client prop.

    import { withApollo } from 'react-apollo';
    
    class Layout extends Component {
      ...
      logout = () => {
        this.props.client.resetStore();
        alert("YOUHOU");
      }
      ...
    }
    
    export default withApollo(Layout);
    

    For those unsure about the differences between resetStore and clearStore:

    resetStore()

    Resets your entire store by clearing out your cache and then re-executing all of your active queries. This makes it so that you may guarantee that there is no data left in your store from a time before you called this method.

    clearStore()

    Remove all data from the store. Unlike resetStore, clearStore will not refetch any active queries.

提交回复
热议问题