定义了一个vue的全局方法,但是可以在组件中调用,确不能再vuex中调用,提示undefinedVue.prototype.ajax = function (){ alert('aaaaaaa');};var store = new Vuex.Store({ state: { user: {}, }, actions: { signout: function(context) { this.ajax(); //undefined } }});
3 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
你把函数定义在 Vue
的原型链上,只能在 Vue
的实例里才能取到这个方法。
vue组件
是一个Vue
的实例,所以你当然能在这里调用到 ajax
方法。
而,vuex
只是一个 vue插件
,在 vuex
里的 this
不是指向 vue实例的
,所以肯定是取不到 ajax
方法的。
建议:把 ajax
函数放在一个单独的模块里定义,这样你在项目的不同地方,可以通过 import
的方式引入使用。
慕标5832272
TA贡献1966条经验 获得超4个赞
你的方法定义在 Vue
原型链上,在 Vuex
实例中当然用不到呀。
另外这个方法也不需要挂在 Vue
上,直接写个函数 import
进来用就好了。
添加回答
举报
0/150
提交
取消