APIから取得したJSONデータをbooksという配列に格納しているのですが、格納後にコンソールで出力してもundifinedとなってしまいます。
なぜ正しく出力されないのか、解決法を教えていただきたいです。よろしくお願いします。
Javascript
1data(){ 2 return { 3 keyword: 'サッカー', 4 totalItems: null, 5 index: 0, 6 books: [], 7 posts: [], 8 searching: false, 9 word: null, 10 currentPage: 1, 11 } 12 }, 13methods: { 14 //検索ボタンで書籍を検索 15 ...mapActions(['addResult']), 16 onclick: function(){ 17 this.$http('https://www.googleapis.com/books/v1/volumes?q='+this.keyword+'&maxResults=10'+'&startIndex='+this.index) 18 //JSONデータとして取得 19 .then((response)=>{ 20 return response.json() 21 }) 22 //JSONの内容をbooksに詰め替え 23 .then((data)=>{ 24 this.totalItems = data.totalItems 25 this.books=[] 26 for(let b of data.items){ 27 let authors = b.volumeInfo.authors 28 let price = b.saleInfo.listPrice 29 let publisher = b.volumeInfo.publisher 30 let published = b.volumeInfo.publishedDate 31 let img = b.volumeInfo.imageLinks 32 33 this.books.push({ 34 id: b.id, 35 title: b.volumeInfo.title, 36 author: authors ? authors.join(',') : '', 37 price: price ? price.amount.toLocaleString() : '-', 38 publisher: publisher ? b.volumeInfo.publisher : '', 39 published: published ? b.volumeInfo.publishedDate : '', 40 image: img ? img.smallThumbnail : '' 41 }) 42 } 43 }) 44 console.log('詰め替え終了') 45 console.log(this.books) 46 this.addResult(this.books) 47 },
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。