<p>在router.beforeEach中,我想要检查存储中是否已经存在sessionToken,如果不存在则重定向到登录页面以获取它,但是我遇到了以下错误:</p>
<pre class="brush:php;toolbar:false;">在从“/”跳转到“/login”时,导航守卫检测到无限重定向。为了避免堆栈溢出,中止导航。如果不修复,这将在生产环境中出现问题。</pre>
<p>我的router.js中的代码:</p>
<pre class="lang-js prettyprint-override"><code>router.beforeEach((to, from, next) => {
if(ENV == 'development') {
let sessionStorage = storage.sessionStorageGet('_sessionToken')
if (sessionStorage === null) next({ name: 'Login' })
else next()
}
})
</code></pre>
const routes = [ { path: '/login', name: 'Login', component: () => import('../views/login'), meta: { requiresAuth: false } }, { path: '/private', ... private route config, meta: { requiresAuth: true } } ]; router.beforeEach(async (to, from, next) => { if (ENV == 'development') { if (to.matched.some(record => record.meta.requiresAuth)) { const sessionStorage = storage.sessionStorageGet('_sessionToken') if (sessionStorage) { next(); } else { router.push({ name: 'Login' }); } } else { next(); } } });