How to navigate using vue router from Vuex actions

Saurabh picture Saurabh · Nov 22, 2016 · Viewed 62k times · Source

I am creating a web app with Vue 2.x and Vuex 2.x. I am fetching some information from a remote location via an http call, I want that if that call fails I should redirect to some other page.

GET_PETS: (state) => {
  return $http.get('pets/').then((response)=>{
      state.commit('SET_PETS', response.data)
    })
  },
  error => {this.$router.push({path:"/"}) }
  )
}

But this.$router.push({path:"/"}) gives me following error.

Uncaught (in promise) TypeError: Cannot read property 'push' of undefined

How can this be achieved.

Simulated JsFiddle: here

Answer

Marek Urbanowicz picture Marek Urbanowicz · Nov 22, 2016

import router from './router'

and use router.push

Simple like that.