Используйте функцию стрелки ES6 в качестве обработчика обратного вызова AJAX - PullRequest
0 голосов
/ 05 ноября 2019

В Vue ловушке жизненного цикла у меня есть следующий вызов 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 не связан правильно.

1 Ответ

0 голосов
/ 05 ноября 2019

Возможно, вы захотите дать дополнительный контекст, поскольку документация , которую вы связали вместе с функцией стрелки обработчика обещаний, работает отлично.

new Vue({
  data: {
    a: 1
  },
  created: function () {
    console.log(this.a, this.supplierCount);
    axios.get("https://api.myjson.com/bins/xva5k").then(response => {
      this.supplierCount = _.uniqBy(response.data, 'groupNumber').length;
      console.log(this.a, this.supplierCount);
    });
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.0/axios.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
...