我正在使用Vue 2.x和Vuex 2.x创建一个Web应用程序。我正在通过http调用从远程位置获取一些信息,我希望如果该调用失败,我应该重定向到其他页面。
GET_PETS: (state) => {
return $http.get('pets/').then((response)=>{
state.commit('SET_PETS', response.data)
})
},
error => {this.$router.push({path:"/"}) }
)
}
但是this.$router.push({path:"/"})
给我以下错误。
未捕获(承诺)TypeError:无法读取未定义的属性“ push”
如何做到这一点。
模拟的JsFiddle:在这里
我不喜欢将应用程序的位置状态与商店中其余应用程序状态分开,并且不希望同时管理路由器和商店,所以我创建了一个Vuex模块来管理商店内的位置状态。
现在,我可以像其他状态更改一样通过调度动作进行导航:
这具有使动画页面过渡之类的内容更易于处理的附加好处。
滚动自己的
router
模块并不难,但是如果您愿意,也可以尝试使用我的模块:https://github.com/geekytime/vuex-router