Я хочу добавить страницу с забытым паролем на свою страницу входа, но не могу перейти на нее после обновления кода - PullRequest
0 голосов
/ 29 мая 2020

Я хочу добавить страницу с забытым паролем на свою страницу входа,

, но не могу перейти на нее после обновления кода.

Сообщение об ошибке веб-сайта :

  • [vue -router] неперехваченная ошибка во время навигации по маршруту
  • Неперехвачено (в обещании) undefined
  • Превышен максимальный размер стека вызовов

старый код

router.beforeEach((to, from, next) => {
  const isLogin = localStorage.getItem("token") == "ImLogin";
  var role = localStorage.getItem('roles');
  if (isLogin) {
    if (to.matched.every(item => item.meta.indexOf(role) > -1)) {
      next();
    } else {
      next('/tips');
    }
  } else {
    if (to.path !== "/login") next("/login");
    else next();
  }
});

новый код

<v-btn
  class="font-weight-bold"
  style="color:#FF7D52"
  href
  @click.prevent="forgetPassword"
  text
  >forgetPassword
</v-btn>

forgetPassword() {
      this.$router.push("/forgetPassword");
    },
router.beforeEach((to, from, next) => {
  const isLogin = localStorage.getItem("token") == "ImLogin";
  var role = localStorage.getItem('roles');
  if (isLogin) {
    if (to.matched.every(item => item.meta.indexOf(role) > -1)) {
      next();
    } else {
      next('/tips');
    }
  } else {
    if (to.path === "/forgetPassword") {
      next("/forgetPassword");
    } else {
      if (to.path !== "/login") next("/login");
      else next();
    }
  }
});

1 Ответ

0 голосов
/ 30 мая 2020
if (to.path === "/forgetPassword") {
      next("/forgetPassword");
}

Как предложил пользователь Matt Ellen, это создаст бесконечный l oop, поскольку переход к «/ Forgotpassword» снова запускает маршрутизатор перед каждым перехватом.

Просто next(); должно решить эту проблему .

...