неперехваченная ошибка при навигации по маршруту: не удается прочитать свойство ‘apply’ неопределенного значения

#vue.js #vue-router

#vue.js #vue-маршрутизатор

Вопрос:

Я получаю эту ошибку при попытке перемещаться между страницами либо по ссылкам, либо по кнопкам, ошибка, похоже, возникает специально в функции boundRouteGuard в vue-router.js исходный файл, в котором кажется, что guard параметр, переданный функции, не определен

 function bindGuard (guard, instance) {
  if (instance) {
    return function boundRouteGuard () {
     return guard.apply(instance, arguments)
    }
  }
}
 

А вот мой файл маршрута:

 import Vue from 'vue'
import VueRouter from 'vue-router'
import NProgress from 'nprogress'
import i18n from './../plugins/i18n.plugin'
import routes from './routes'
const router = new VueRouter({
 mode: 'history',
 base: process.env.BASE_URL,
 routes,
 linkActiveClass: 'current',
 linkExactActiveClass: 'exact-current'
})
Vue.use(VueRouter);

router.beforeEach((to, from, next) => {
  function redirectToLogin () {
    next({ name: 'login', query: { redirectFrom: to.fullPath } })
  }



 // If this isn't an initial page load...
 if (from.name !== null) {
  NProgress.start()
 }


 document.title = to.meta.title || i18n.t('app.title')

 const authRequired = to.matched.some(record => record.meta.authRequired)
 const token = localStorage.getItem('tokenData')

 if (authRequired amp;amp; !token amp;amp; to.name !== 'login') {
   redirectToLogin()
 } else {
  console.log(to.path)
  next()
 }
})


// When each route is finished evaluating...
router.afterEach(() => {
 // Complete the animation of the route progress bar.
 NProgress.done()
})

export default router
 

Комментарии:

1. Ваш код работает для меня. Если вы хотите, разместите воспроизводимый пример ошибки по адресу codesandbox.io