Передача данных в обещание в VUE - PullRequest
0 голосов
/ 08 декабря 2018

Я недавно начал работать с Vue 2 и работал над небольшим проектом с использованием Pexels API.Я пытаюсь вызвать API, чтобы получить URL-адреса некоторых изображений для загрузки в свойство объекта данных.Однако я не могу передать свойство data в обратный вызов.Я думаю, что мой код может объяснить вещи лучше.Вот весь экземпляр Vue:

export default {
  name: 'Gallery',
  data() {
    return {
      pics: [1,2],
      count: 100
    }
  },
  mounted() {
    console.log(this.count) //I can see this value
    console.log(this.pics) //I can also see this value 
    let test = this.count; 
    pexelsClient.getPopularPhotos(10, 1)
        .then(function(result){
          console.log(test); //This will allow me to see the value 
          console.log(this.count) // This gets me an error message see below.
          console.log(result.photos[0].url);
          return result;
      })
   }//End of mounted function
  }//End of Vue instance

Сообщение об ошибке, когда я console.log(this.count):

Uncaught (в обещании) TypeError: Невозможно прочитать свойство 'count' из неопределенного

Я пытался прочитать множество статей по этому вопросу, просмотрел другие посты и не может найти ничего, что мне помогло бы.Я признаю, что обещания - очень запутанная тема для меня.Любая помощь будет отличной.В конце концов, я хотел бы вставить каждый URL-адрес изображения в массив this.pics, а затем отобразить их на странице.Опять же, любая помощь будет отличной.

1 Ответ

0 голосов
/ 08 декабря 2018

Вы не можете использовать this для ссылки на экземпляр vm внутри области функции, если вы не используете обозначение стрелки, как это:

pexelsClient.getPopularPhotos(10, 1)
    .then((result) => {
    console.log(this.count) 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...