こんにちは。Nuxt.js初学者です。
こちらの記事・箇所を参考に、Nuxt.jsでURLの数値に応じた要素を表示させたいともがいています。
あらかじめ用意しておいたデータ(users)から、URLの末尾の数字(1〜3)と一致するidを持つオブジェクトのnameを取り出してresultに代入、URLの数値に応じて表示させるnameを動的に変える…ということをしたいはずでした。
見本では下記のようになっていたのですが同じようにしても動かず、というかconputedはデフォルトではgetterなので代入はできないのでは?と自分なりに調べて書いてみたのですが、何時間も悩んだ末ギブアップしました。
もしわかる方がいらっしゃれば、ご教示いただけないでしょうか。
バージョン: @nuxt/cli v2.15.6
初心者ゆえ、言葉足らずな箇所などあったらすみません。
よろしくお願いします。
▼見本のコード
javascript
1<template> 2 <h1>ユーザID: {{ user.name }}</h1> 3</template> 4 5<script> 6export default { 7 data(){ 8 return { 9 id: this.$route.params.id, 10 users: [ 11 { 12 id: 1, name: 'John Doe' 13 }, 14 { 15 id: 2, name: 'Kevin Smith', 16 }, 17 { 18 id: 3, name: 'Harry Bosch' 19 }, 20 ], 21 } 22 }, 23 computed:{ 24 user(){ 25 return this.users.find(user => user.id == this.id); 26 } 27 } 28} 29</script>
▼自分のコード
javascript
1<template> 2 <div> 3 <v-container> 4 <h1>User ID: {{ result }}</h1> 5 </v-container> 6 </div> 7</template> 8 9<script> 10export default { 11 data() { 12 return { 13 id: this.$route.params.id, 14 users: [ 15 { 16 id: 1, 17 name: 'Joe', 18 }, 19 { 20 id: 2, 21 name: 'Ryo', 22 }, 23 { 24 id: 3, 25 name: 'Momo', 26 }, 27 ], 28 result: '', 29 } 30 }, 31 computed: { 32 user: { 33 get() { 34 console.log(this.result) 35 return this.result 36 }, 37 set(v) { 38 const result = '' 39 const key = '' 40 let i = 0 41 for (i in this.users) { 42 if (this.id === i.id) { 43 this.result = i.name 44 } 45 } 46 }, 47 }, 48 }, 49} 50</script> 51
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/13 05:13
2021/07/13 05:15
2021/07/13 08:03