samedi 13 juillet 2019

Vue.js: TypeError: Cannot read property '$router' of undefined?

Laravel 5.7 and Vue.js2. I am working with JWT Authentication and Vuex to store my LoggedIn User information. When I want to redirect to homepage after login $router is giving this unexpected error.

Login Function:

login()
{
        Axios.post('/api/auth/login',{
          email: this.form.email,
          password: this.form.password
        })
        .then(function(response){

          let token = response.data.access_token;
          let username = response.data.user.name;
          let role = response.data.user.role;

          if(Token.isValid(token))
          {
            localStorage.setItem('token', token);
            localStorage.setItem('username', username);
            localStorage.setItem('role', role);

            this.$router.push({path: '/'});
          }

        })
        .catch(function(error){
          console.log(error)
        })
}

App.js

import Vuex from 'vuex';
import { routes } from './router/routes.js'
Vue.use(VueRouter)
Vue.use(Vuex);

const router = new VueRouter({
    routes,
    mode: 'history'
  })

const app = new Vue({
    el: '#app',
    router,
    components: {
        AppMain
    }
});



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire