У меня есть приложение React, которое использует Apollo Client.Я использую apollo-link-state
и apollo-cache-persist
и мне нужно сбросить мой магазин до значений по умолчанию, когда в моем приложении вызывается client.resetStore()
.
В документах говорится, что при создании клиента вам следует вызвать client.onResetStore(stateLink.writeDefaults)
и это сделает свою работу, но writeDefaults
выставлено Apollo Link State, к которому у меня нет прямого доступа, так как я использую Apollo Boost.
Вот мой код клиента Apollo:
import ApolloClient from 'apollo-boost';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { persistCache } from 'apollo-cache-persist';
import { defaults, resolvers } from "./store";
const cache = new InMemoryCache();
persistCache({
storage: window.localStorage,
debug: process.env.NODE_ENV !== 'production',
cache
});
const client = new ApolloClient({
uri: process.env.NODE_ENV === 'production' ? 'https://five-yards-api.herokuapp.com/graphql' : 'http://localhost:7777/graphql',
credentials: 'include',
clientState: {
defaults,
resolvers
},
cache
});
// TODO: Doesn't work as expected
client.onResetStore(client.writeDefaults);
export default client;