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