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

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

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

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

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Q&A

解決済

1回答

4397閲覧

v-forで繰り返し処理しようとしても定義されていないとエラーが出てしまう

1042limit

総合スコア29

Vue.js

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

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

0グッド

0クリップ

投稿2018/08/25 06:37

いつもお世話になります。
nuxt.jsでWebページの作成練習しています。
axiosでJSONを取得しv-forでリスト表示を行いたいと思っていますが、下記のようにエラーが出てしまいます。
エラーメッセージ

Property or method "lists" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.

javascript

1<template> 2 <div> 3 <section class="hero is-primary is-bold"> 4 <div class="hero-body"> 5 <div class="container"> 6 <h1 class="title"> 7 nuxt v-for 8 </h1> 9 <h2 class="subtitle"> 10 nuxt v-for 11 </h2> 12 </div> 13 </div> 14 </section> 15 <div class="container is-fluid"> 16 <div> 17 <ul> 18 <li v-for="list in lists" v-bind:key="list.id"> 19 {{ list.name }}{{ list.id }} 20 </li> 21 </ul> 22 </div> 23 </div> 24 </div> 25</template> 26<script> 27 import axios from 'axios' 28 export default { 29 data() { 30 list : [] 31 }, 32 created: function () { 33 axios.get('1.json').then(function (response) { 34 this.list = response.data 35 }.bind(this)).catch(function (e) { 36 console.error(e) 37 }) 38 } 39 } 40</script> 41

お忙しいところ恐れ入りますがよろしくお願い申し上げます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーの内容通り、listsは定義されていません。
listは定義されているようです。

js

1data() { 2 return { 3 list : [] 4 }; 5},

投稿2018/08/25 06:49

編集2018/08/25 13:31
spookybird

総合スコア1803

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

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

1042limit

2018/08/25 13:19 編集

ご助言ありがとうございます。 ``` <template> <div> <section class="hero is-primary is-bold"> <div class="hero-body"> <div class="container"> <h1 class="title"> nuxt v-for </h1> <h2 class="subtitle"> nuxt v-for </h2> </div> </div> </section> <div class="container is-fluid"> <div> <ul> <li v-for="list in lists" v-bind:key="list.id"> {{ list.name }}{{ list.id }} </li> </ul> </div> </div> </div> </template> <script> import axios from 'axios' export default { data() { lists : [] }, created: function () { axios.get('1.json').then(function (response) { this.lists = response.data }.bind(this)).catch(function (e) { console.error(e) }) } } </script> ``` としてみましたが ``` Property or method "lists" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. ``` と表示されてしまいます。
spookybird

2018/08/25 13:31

コード修正してみました。dataをfunctionで定義されているのにreturnしてないせいですかね。
1042limit

2018/08/25 13:33

ご助言ありがとうございました。 無事解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問