オブジェクトを含む配列をループし、これらのオブジェクトから著者名のリストを取得したいと考えています。Vue 2 - メソッド内の計算にアクセスする方法
これを行うには、forEach()
までの方法を書いてください。しかし、console.log(articles)
またはconsole.log(this.newsFeed)
がundefined
を返しているか空白になっている場合、配列を含む計算されたプロパティにアクセスできないようです。
は明らかに私が何か間違ったことをやっているが、私はここで何を...
を理解していないことは、私のコードです:
new Vue({
el: '#feed',
data: {
newsFeed: "",
},
created: function() {
console.log('running');
this.getData();
this.filterAuthors();
},
computed:
{
articles: function() {
var articles = this.newsFeed.articles;
return articles;
},
},
methods:
{
getData: function() {
var newsFeed = this.$http.get('https://newsapi.org/v1/articles?source=the-next-web&sortby=latest&apikey='+ apikey).then(response => {
this.newsFeed = response.body;
}, response => {
console.error(error);
});
},
filterAuthors: function() {
var articles = this.newsFeed.articles;
var authorsArray = [];
console.log(articles);
// commented out while troubleshooting above
// articles.forEach(function(article) {
// // var authors = article.author;
// // authorsArray.push(authors);
// console.log(authors);
// });
// return authorsArray;
}
}
});
「this.newsfeed.articles」ではなく、「this.articles」です。 –
ありがとうございます - しかし、私は 'this.articles'に変更しようとしましたが、コンソールは' undefined'を返しますか? – sigil
これは、計算結果が 'this.newsFeed.articles'を参照しているためですが、' this.newsFeed'は文字列です。 'articles'メンバを含むオブジェクトとして' this.newsFeed'から始めましょう。 –