vue-apollo выполняет запрос graphql в защите маршрутизатора - PullRequest
0 голосов
/ 29 июня 2018

У меня есть приложение, где пользователь может подписаться на событие. Как только пользователь зарегистрировался, он может посещать маршруты, которые он не мог раньше.

Я использую graphql для своих запросов API. Код в моем охраннике маршрута выглядит так:

router.beforeEach(async (to, from, next) => {
  if (to.meta.signUpRequired && from.name) {
    const { data: { getCurrentUser } } 
      = await apolloProvider.defaultClient.query({
      query: USER_INFO_QUERY
    });
    if (getCurrentUser && getCurrentUser.isCollectionAttendee) {
      return next();
    }
    return next('/');
  }
  return next();
});

Это работает нормально, и запрос не выполняется каждый раз, когда изменяется маршрут, потому что vue-apollo кэширует результат. Моя проблема в том, что если пользователь подписывается и затем пытается переключить маршрут, он не может этого сделать, потому что кэшированный результат запроса все еще используется.

Я не хочу использовать fetchPolicy только для сети перед каждым изменением маршрута.

Как я могу решить эту проблему?

...