programing

라우터 가드에서 vue-module execute graphql 쿼리

goodsources 2022. 8. 7. 16:54
반응형

라우터 가드에서 vue-module execute graphql 쿼리

이벤트에 가입할 수 있는 어플리케이션을 가지고 있습니다.가입 후 바로 이용할 수 없었던 루트를 방문할 수 있습니다.

API 요청에 graphql을 사용하고 있습니다.루트 가드 코드는 다음과 같습니다.

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를 사용하지 않습니다.

어떻게 하면 해결할 수 있을까요?

사용해보겠습니다.this.$apolloProvider.defaultClient.resetStore()등록 후.

언급URL : https://stackoverflow.com/questions/51095471/vue-apollo-execute-graphql-query-in-router-guard

반응형