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
提交
取消
