亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

VUEX 的 actions 中無法獲取到 this 對象嗎?

VUEX 的 actions 中無法獲取到 this 對象嗎?

守候你守候我 2018-09-03 12:17:49
查看完整描述

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
})


查看完整回答
反對 回復 2018-09-09
?
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'})
        })
    }
}


查看完整回答
反對 回復 2018-09-09
  • 2 回答
  • 0 關注
  • 4820 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號