RangeError: tamanho máximo da pilha de chamadas excedido

 Isso está preso em um loop infinito, meus motivos são:

Quando o login vue está íntegro, a condição é escrita incorretamente, resultando em um loop infinito.

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

Porque ele julga diretamente se existe um token, se não, ele vai pular para a página de login, mas esqueça de considerar que depois de pular para a página de login, a página de login não tem um token, então na próxima vez que você entrar, você ainda vai entrar na página de login, então Preso em um loop infinito.

Solução:

Ao fazer login, julgue se está na página de login ou na página de registro. Se for na página de login ou na página de registro, você pode entrar diretamente na página. Se precisar julgar em outras páginas, se há um token, se existir entre, se não existir cadastre.

    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')
                }
            }
  })

Acho que você gosta

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