Как в next() передать динамические параметры?

у меня есть такой маршрут в router
{
    path: '/userRoom/:id',
    name: 'UserRoom',
    meta: { auth: true },
    component: userRoom
}

и такой код там же
router.beforeEach((to, from, next) => {
  const requireAuth = to.matched.some(record => record.meta.auth)
  const userData = JSON.parse(localStorage.getItem('userData'))

  if (to.name === 'UserRoom' && requireAuth) {
    if (userData) {
      console.log('userData')
      next('/userRoom/' + userData._id)
    } else {
      next('/registration')
    }
  } else {
    next()
  }
})


и ничего не работает, когда я нажимаю на ссылку по этому маршруту у меня в консоль просто бесконечно печатается userData и все редиректа не происходит, причем я заметил что если я поменяю path в next() на несуществующий маршрут то он переходит просто там компонента никакого нет
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
а не потому ли, что вы, перейдя по нужному адресу, проходите проверку и редеректите себя на этот же адрес. Редеректнулись на этот адрес, прошли проверку, по результату которой снова редиректнулись туда же

// я перехожу на /userRoom/:id ? и прошел авторизацию?
  if (to.name === 'UserRoom' && requireAuth) {
    if (userData) {
      console.log('userData')
// окей! Снова перехожу на /userRoom/:id 
      next('/userRoom/' + userData._id)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы