質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2741閲覧

axiosを使用したapi通信でエラーが発生してしまいます。

aa316316

総合スコア39

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2018/12/12 11:13

編集2018/12/15 13:42

概要

Vueでaxiosを使用してspread sheet apiからシート内容のデータをgetする際に、下記のようなエラーが発生してしまい、解決方法がわかりません。

イメージ説明

対応

books.dataのdataに問題があるというエラーが発生していたため、axiosでget後にthenでconsole.log(this.data)を出してみたところ、dataの値がundefinedという結果がでました。この部分に問題があるということは間違い無いと思いますが、解決方法がわかりません。もしわかる方がいましたら教えていただきたいです。
よろしくお願いします!

コード

Vue.js

1<template> 2 <div class="home"> 3 <img alt="Vue logo" src="../assets/logo.png" class="logo"> 4 <HelloWorld msg="Book Management"/> 5 <div> 6 <v-layout row class="book-list"> 7 <v-flex xs12 sm6 offset-sm3> 8 <v-card> 9 <v-toolbar color="teal" dark> 10 11 <v-toolbar-title class="text-xs-center book-list__title">Book List</v-toolbar-title> 12 13 <v-spacer></v-spacer> 14 15 <v-text-field label="Search your book"></v-text-field> 16 </v-toolbar> 17 18 <v-list subheader class="pt-3" v-if="books.data"> 19 <v-subheader>貸出可能な本</v-subheader> 20 <v-list-tile v-for="book in books.data" :key="book.id"> 21 <v-list-tile-content v-if="book.title"> 22 <v-list-tile-title v-html="book.title"></v-list-tile-title> 23 </v-list-tile-content> 24 </v-list-tile> 25 </v-list> 26 </v-card> 27 </v-flex> 28 </v-layout> 29 </div> 30 </div> 31</template> 32 33<script> 34// @ is an alias to /src 35import HelloWorld from '@/components/HelloWorld.vue'; 36import axios from 'axios'; 37import WebFontLoader from 'webfontloader'; 38 39export default { 40 name: 'home', 41 components: { 42 HelloWorld, 43 }, 44 data() { 45 return { 46 message: 'Book Management', 47 books: null, 48 headers: { 49 'Content-Type': 'application/json;charset=UTF-8', 50 'Access-Control-Allow-Origin': '*', 51 }, 52 }; 53 }, 54 mounted() { 55 WebFontLoader.load({ 56 google: { 57 families: ['Roboto:100,300,400,500,700,900'], 58 }, 59 active: this.setFontLoaded, 60 }); 61 axios 62 .get('[spread sheet url]', this.headers) 63 .then(response => (this.books = response)) 64 .then(() => (console.log(this.data))); 65 }, 66 methods: { 67 setFontLoaded() { 68 this.$emit('font-loaded'); 69 }, 70 }, 71}; 72</script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

多分

javascript

1data() { 2 ... 3}

の部分を取得したいためthis.dataってやってると思いますが、methodsではないのでこの手法ではアクセスできません。
ソース見る限りthis.booksを出力すればいいのではと思いますが、調べたらthis._dataで取れるっぽいです。

あと、よくみたら

javascript

1<v-list subheader class="pt-3" v-if="books.data">

の部分のエラーはbooksがnullなのでbooks.dataは参照できないというエラーなので

javascript

1<v-list subheader class="pt-3" v-if="books && books.data">

にすればよいかと

投稿2018/12/13 02:09

編集2018/12/13 02:35
rururu3

総合スコア5545

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aa316316

2018/12/15 13:40

>rururu3 ありがとうございます!v-ifの書き方に問題があったのですね。 アドバイスを参考に無事解決することができました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問