定义了一个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
提交
取消
