RangeError: se excedió el tamaño máximo de la pila de llamadas

 Esto está atascado en un bucle infinito, mis razones son:

Cuando el inicio de sesión de vue está en buen estado, las condiciones se escriben incorrectamente, lo que da como resultado un bucle infinito.

const login=()=>!!localStorage.getItem('token')
router.beforeEach((to,from,next)=>{
if(login()){
       next()
    }else{
       next('/login')
         }
 })

Debido a que juzga directamente si hay un token, si no, saltará a la página de inicio de sesión, pero olvide considerar que después de saltar a la página de inicio de sesión, la página de inicio de sesión no tiene un token, por lo que la próxima vez que ingrese, seguirá entrando en la página de inicio de sesión, por lo que Atrapado en un bucle sin fin.

Solución:

Al iniciar sesión, juzgue si está en la página de inicio de sesión o en la página de registro. Si es la página de inicio de sesión o la página de registro, puede ingresar directamente a la página. Si necesita juzgar en otras páginas, si hay un token, si existe ingrese, si no existe regístrelo.

    const login=()=>!!localStorage.getItem('token')
         router.beforeEach((to,from,next)=>{
            const nextPath=['/login','/register']
            if(nextPath.includes(to.path)){
                next()
            }else{
                if(login()){
                    next()
                }else{
                    next('/login')
                }
            }
  })

Supongo que te gusta

Origin blog.csdn.net/m0_50013284/article/details/125689874
Recomendado
Clasificación