【发布时间】:2019-11-05 12:36:39
【问题描述】:
在Vue lifecycle hook 中,我有以下 AJAX 调用
created: function () {
axios.get(`/list-suppliers/${this.newAwardNdc}`).then(function (response) {
this.supplierCount = _.uniqBy(response.data, 'groupNumber').length;
}.bind(this));
}
是否可以使用箭头函数来处理 AJAX 调用的结果?我尝试了以下
created: function () {
axios.get(`/list-suppliers/${this.newAwardNdc}`).then(response => {
this.supplierCount = _.uniqBy(response.data, 'groupNumber').length;
});
}
但它失败了,因为this 没有正确绑定。
【问题讨论】:
-
只是猜测,但也许尝试
created() {}而不是created: function(){}那么这不会指向函数,而是指向 vue 实例。 -
它的行为应该是一样的,
created是如何被调用的,也许你在一种情况下绑定它而在另一种情况下没有? -
箭头函数看起来不错。您是如何得出
this导致问题的结论的?您在浏览器控制台上遇到什么错误。请附上错误堆栈以及后续问题。 -
第一个示例的工作方式不会与第二个示例不同。
-
@SagarAgrawal:箭头函数像任何其他变量一样简单地解析
this。
标签: javascript vue.js ecmascript-6 arrow-functions