瀟瀟雨雨
2019-03-21 18:15:30
定義了一個(gè)vue的全局方法,但是可以在組件中調(diào)用,確不能再vuex中調(diào)用,提示undefinedVue.prototype.ajax = function (){? ? alert('aaaaaaa');};var store = new Vuex.Store({? ? state: {? ? ? ? user: {},? ? },? ? actions: {? ? ? ? signout: function(context) {? ? ? ? ? ? this.ajax();? ? ? ? ? ? //undefined? ? ? ? }? ? }});
3 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
你把函數(shù)定義在 Vue
的原型鏈上,只能在 Vue
的實(shí)例里才能取到這個(gè)方法。
vue組件
是一個(gè)Vue
的實(shí)例,所以你當(dāng)然能在這里調(diào)用到 ajax
方法。
而,vuex
只是一個(gè) vue插件
,在 vuex
里的 this
不是指向 vue實(shí)例的
,所以肯定是取不到 ajax
方法的。
建議:把 ajax
函數(shù)放在一個(gè)單獨(dú)的模塊里定義,這樣你在項(xiàng)目的不同地方,可以通過 import
的方式引入使用。

慕標(biāo)5832272
TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
你的方法定義在 Vue
原型鏈上,在 Vuex
實(shí)例中當(dāng)然用不到呀。
另外這個(gè)方法也不需要掛在 Vue
上,直接寫個(gè)函數(shù) import
進(jìn)來用就好了。
添加回答
舉報(bào)
0/150
提交
取消