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