vue - следующий метод не всегда работает в foreach - PullRequest
0 голосов
/ 12 апреля 2020

Я создаю навигационную охрану для перенаправления пользователя на какую-либо страницу, я получаю статус авторизации от vuex:

state: {
    auth: false,
},

и в vue -выходе, прежде чем установить, я устанавливаю условие, что при состоянии авторизации имеет значение false и маршрут не является adminAuth, перенаправление на adminAuth route

var auth = store.state.auth
if (!auth){
    if( to.name !== "adminAuth" ){
      next( { name: 'adminAuth' } )
    }
}

Проблема заключается в том, что маршрут изменился в первый раз, next () не работает должным образом, но во второй раз, работает должным образом! ты можешь мне помочь?

1 Ответ

0 голосов
/ 12 апреля 2020

Вы хотите перехватить запрос навигации, используя beforeResolve или beforeEnter, потому что beforeEach слишком рано, а некоторые атрибуты логики c, которые вы хотите использовать, еще не обработаны, поэтому это возможно во второй раз Навигация, что некоторые базовые логики c кажутся разрешенными, потому что следующий запрос обращается к чему-то, установленному предыдущим запросом.


const router = new VueRouter({

  routes: { ... }

})

router.beforeResolve((to, from, next) => {

  if(!router.app.$store.state.auth && to.name !== 'adminAuth') {

   next( { name: 'adminAuth' } )

  }

  next()

})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...