web-dev-qa-db-fra.com

Vue Router this. $ Router.Push ne fonctionne pas sur les méthodes

je fais la connexion, mais après que les méthodes de connexion réussissent, je pousse une route pour l'objet $router et cela ne fonctionne pas, quelqu'un peut-il m'aider?

mon code:

doLogin(){
       this.attemptLogin({...this.user}).then(function(){
            this.$router.Push('/') 
            } )
  },

Ainsi, les méthodes de connexion s'exécutent comme prévu, mais le rappel this.$router.Push('/') ne s'exécute pas

mon attemptLogin est une action, son code suit:

export const attemptLogin = ( {commit}, user) => {
    return http.post('login', {
        'email': user.email,
        'password': user.password
    }).then(response => {
        return commit(types.setToken, response.data)
    }).catch( e => console.log(e))
}
6
Thauan C Santos

Résolu, j'ai changé la méthode this.$router.Push() de mon code en this.$router.go('/').

Merci pour tout le monde dans les commentaires.

9
Thauan C Santos

Vous devez pousser vers un nom ou un chemin d'accès Essayez ceci:

this.$router.Push({ path: '/' })
this.$router.Push({ name: 'Home' })
10
Luis Mendoza

J'ai eu le même problème. Assurez-vous de définir mode: 'history' dans le routeur

0
WhatIsHTML

Dans mon cas, j'ai trouvé que ma beforeRouteUpdate n'exécute pas la méthode next()

Mauvais:

beforeRouteUpdate(to, from, next) {
  /*
  something...
  */
}

Bien:

beforeRouteUpdate(to, from, next) {
  /*
  something...
  */

  next() // DO IT!
}
0
KOSUI IWASA