반응형
라우터 가드에서 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
반응형
'programing' 카테고리의 다른 글
c11에서의 멀티스레딩 지원 (0) | 2022.08.08 |
---|---|
vuex-module-decorator와 @nuxtjs/auth를 함께 사용할 때 오류 발생 (0) | 2022.08.08 |
Vue 3 - inject()는 설정 또는 기능 컴포넌트 내에서만 사용할 수 있습니다. (0) | 2022.08.07 |
v-model vuej 대신 v-bind 및 v-on 사용 (0) | 2022.08.07 |
앱 실행 중 Vue.js 라우터에 경로 추가 (0) | 2022.08.07 |