Я хочу использовать локальное состояние Apollo для хранения информации, чтобы отслеживать, вошел ли пользователь в систему или нет.
Поэтому я изменил клиент Apollo с clientState следующим образом.
clientState: {
defaults: {
loggedIn: 'false',
},
resolvers: {
Mutation: {
toggleLoggedIn(_: any, variables: any, { cache }: any) {
// read the cart open value from the cache
const { loggedIn } = cache.readQuery({
query: LOGIN_STATE_QUERY,
});
const data = {
data: {
loggedIn: !loggedIn,
},
};
cache.writeData(data);
return data;
},
},
},
},
Я планирую использовать два маршрутизатора для моего приложения.
и
так что вот мое состояние приложения.
Файл App.js
const { loading, user } = this.state;
<ApolloProvider client={client}>
{user ? <AppRouter /> : <SessionRouter />}
</ApolloProvider>
Состояние файла app.js
this.state = {
loading: true,
user: null,
};
То, что я хочу сделать, это связать состояние компонента приложения с локальным состоянием apollo. так что изменение локальной переменной состояния "loggedIn" будет выполнено с соответствующим маршрутизатором (маршрутизатор сеанса или Approuter)
если в этом вопросе есть двусмысленность, пожалуйста, не стесняйтесь спрашивать в комментариях.