タイトル通りでdata属性に定義した配列が参照されません。
以下の様にvueのdata属性に文字列nicknamae,配列categoriesを定義しています。
しかし、nicknameは参照されているのですが、配列categories
は参照されず、
TypeError: Cannot read property 'categories' of undefined
と出てしまいます。
apiでデータを取ってきた後、nicknameとcategoriesにそれぞれの値を代入(categoriesはeachでオブジェクトを回して配列として代入)していますが、そもそもcategoriesという配列が定義されていない状態です。
categories:[]
というデータの定義の仕方、もしくはthis.categories
という記載が間違っているのでしょうか?
よろしくお願いします。
// edit.vue <template> <v-app id="performers_edit"> <v-text-field label="ニックネーム" id="nickname" v-model="nickname" color="green darken-5"></v-text-field> <Search :charas="charas"></Search> <v-btn elevation="2" fab icon outlined raised tile></v-btn> </v-app> </template> <script> import axios from 'axios'; import Search from '../parts/search' export default{ data: function() { return{ nickname: '', categories: [], } }, components: { Search }, created: function() { let id = localStorage.getItem("id"); axios .get('http://localhost:3000//users/'+ id +'/edit.json', { //...省略 }) .then((response) => { this.nickname = response.data.nickname response.data.categories.forEach(function(value){ this.categories.push({ id: value.id, name:value.name }) } ); }) .catch(error => { alert(error); }) } } </script>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/22 18:55
2021/05/23 00:16