@postya

Как избавиться от ошибки «Maximum call stack size exceeded» во vue router?

Делаю приложение на VUE JS
Имеется router, который перед каждым роутом проверяет local storage, есть ли там токен или нет
Нужно сделать так:
если нет токена -> редирект на "/authorisation"
если есть токен, то ничего не делать и показывать содержимое страницы, на роутинг которой кликнул пользователь

У меня в данный момент появляется такая ошибка:
RangeError: Maximum call stack size exceeded


Как можно это исправить?

index.js (vue router):
import Vue from "vue";
import VueRouter from "vue-router";

Vue.use(VueRouter);

const routes = [
  {
    path: "/analytics",
    name: "Analytics",
    component: () => import("../views/analytics")
  },
  {
    path: "/authorization",
    name: "Authorization",
    component: () => import("../views/authorization")
  }
];

const router = new VueRouter({
  mode: "history",
  base: process.env.BASE_URL,
  routes
});

router.beforeEach((to, from, next) => {
  if (localStorage.getItem("token")) {
    next();
  } else {
    next("/authorization");
  }
});

export default router;
  • Вопрос задан
  • 1631 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Если уже переходите к форме авторизации, не надо пытаться инициировать этот переход ещё раз - добавьте || to.name === 'Authorization' в beforeEach в if.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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