Защитники навигации Nuxt / Vue-Router перенаправляют в динамический маршрут - PullRequest
0 голосов
/ 05 июня 2019

В настоящее время я разрабатываю веб-приложение SPA с использованием nuxt 2.7.1 в качестве части моей дипломной работы бакалавра.

На некоторых своих страницах я установил beforeRouteEnter средства защиты навигации, чтобы проверить, может ли пользователь получить доступ кстр.Если нет, я хочу перенаправить пользователя на динамический маршрут (а именно /info/1).

При доступе к странице, защищенной навигационной защитой, Nuxt отображает страницу с сообщением об ошибке This page could not be found, хотя URL-адресправильная и простая перезагрузка на странице ошибок корректно приводит меня к динамическому маршруту.

В настоящее время я использую навигационную охрану следующим образом:

beforeRouteEnter(to, from, next) {
  if (!isValidAccess()) {
    console.warn("illegal access");
    next(`/info/1`);
  } else next();
}

Для пояснения, моя структура каталоговвыглядит следующим образом:

pages
  |__ info
  |    |__ _index.vue (redirect target)
  |__ shop
       |__ _index.vue (with navigation guard)

Я попытался поэкспериментировать с аргументом, переданным next(), но пока безуспешно.При реализации другого beforeRouteEnter в целевом маршруте и регистрации параметра to все кажется нормальным.

Надеюсь, вы, ребята, сможете мне помочь.Я уже потратил слишком много времени на эту проблему.

С наилучшими пожеланиями

РЕДАКТИРОВАТЬ:

Я создал минимальный пример, где маршрутизация кдинамический маршрут работает без проблем ... https://codesandbox.io/embed/codesandboxnuxt-t1d0e

Я уточню вопрос, когда найду решение своей проблемы.

1 Ответ

0 голосов
/ 06 июня 2019

Это работает для меня - на целевой странице (индекс) вы будете перенаправлены на ваш /info/1 динамический маршрут. Это то, что вы хотите?

https://codesandbox.io/embed/codesandboxnuxt-vvbrt

Единственное, что я сделал, это обернул ваш динамический маршрут в тег <no-ssr>, чтобы избавиться от ошибки. Ваш компонент не совместим с SSR.

...