我在 vuejs 中有多重身份验证应用程序。因此,在 router.js 中,我检查了如果客户登录它应该重定向到客户仪表板,如果管理员登录它应该重定向到管理仪表板
在 router.js 中,我在 beforeEach() 中实现了它。但它多次重定向它会产生错误。
这是我的 router.js beforeEachFunction()
if (Object.keys(store.state.AppActiveUser).length !== 0 && !store.state.AppActiveUser.is_customer ) {
if (!to.meta.authRequired && auth.isAuthenticated()) {
router.push({ path: '/dashboard', name: 'dashboard', component: './views/DashboardAnalytics.vue' })
}
} if (Object.keys(store.state.AppActiveUser).length !== 0 && store.state.AppActiveUser.is_customer) {
if (!to.meta.authRequired && auth.isAuthenticated()) {
router.push({ path: '/customer/dashboard', name: 'customer-dashboard', component: '@/views/apps/customerComponents/dashboard/DashboardAnalytics.vue' })
}
}
这是错误
Uncaught (in promise) RangeError: Maximum call stack size exceeded
at iterator (app.js:51760)
at step (app.js:51410)
at app.js:51411
at app.js:51785
at app.js:98591
at iterator (app.js:51763)
at step (app.js:51410)
at runQueue (app.js:51418)
at HTML5History.confirmTransition (app.js:51793)
at HTML5History.transitionTo (app.js:51666)
实际上,在到达 beforeEach 之前,我在路由器中推送路由取决于客户或管理员。
现在,当我转到客户路线时,它没有 /dashboard 路线,所以我认为它一次又一次地尝试