所以这是我的Vuex动作,用this._vm调用我的插件$ errorToast:
activateCoupon: (context, id) => {
return new Promise((resolve, reject) => {
api.activateCoupon({id: id}).then(
(response) => {
if(response.success){
context.commit('RESET_CART');
context.commit('SET_COUPON', response.body.data.coupon);
resolve(response);
}else{
this._vm.$errorToast.show(resBody.code);
reject(response);
}
},
(error) => {
this._vm.$errorToast.show(error.body.code);
reject(error);
}
);
});
}
但不知怎的,它转化为:(this => undefined)
activateCoupon: function activateCoupon(context, id) {
return new Promise(function (resolve, reject) {
_api2.default.activateCoupon({ id: id }).then(function (response) {
if (response.success) {
context.commit('RESET_CART');
context.commit('SET_COUPON', response.body.data.coupon);
resolve(response);
} else {
undefined._vm.$errorToast.show(resBody.code);
reject(response);
}
}, function (error) {
undefined._vm.$errorToast.show(error.body.code);
reject(error);
});
});
},
奇怪的是,我对我的其他VuexStore使用相同的方法。而在其他商店这个'成为' _this8' 我正在使用Laravel-Mix进行编译。