2 回答
互换的青春
TA贡献1797条经验 获得超6个赞
我之前也遇到这个问题,我是这样解决的
如果要在actions 或者 mutations 中使用this对象。可以在调用的时候把this对象传过去。
例如
//在组件中this.$store.store.commit("methods", this)
mutations中 methods(state, vue){ vue.$router //调用this对象的路由对象 }
要注意的是, mutations和actions只能接受一个参数, 如果要传入超过2个参数,那就以对象形式传参
例如:
//在组件中 this.$store.store.commit("methods", { "this":this, //Vue对象 "a": aaa })
MMMHUHU
TA贡献1834条经验 获得超8个赞
如果要在actions中发出请求,可以这样做
// main.js import VueResource from 'vue-resource' // 当然vue-source需要自己去npm下载Vue.use(VueResource)
// actions.js 就是放actions的文件import Vue from 'vue'actions: { isAccessToken({commit}, access_token) { return Vue.http.get('/api/token', () => { //... }) } }
如果要在actions中查看路由信息,试试这样
// actions.js import router from '../router' // 路径不一定对,为router路由信息存放的路径 actions: { isAccessToken({commit}, access_token) { return Vue.http.get('/api/token', () => { console.log(router.currentRoute) router.push({name: 'login'}) }) } }
添加回答
举报
0/150
提交
取消