定義了一個(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 } }});
2 回答

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
你的方法定義在 Vue
原型鏈上,在 Vuex
實(shí)例中當(dāng)然用不到呀。
另外這個(gè)方法也不需要掛在 Vue
上,直接寫(xiě)個(gè)函數(shù) import
進(jìn)來(lái)用就好了。

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(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)目的不同地方,可以通過(guò) import
的方式引入使用。
添加回答
舉報(bào)
0/150
提交
取消