前提・実現したいこと
(B)answers
の配列の中で、(A)questionnaire
に格納された値を参照したいです。
questionnaire
格納されている値は下記の画像の通りで、answers
にはquestionnaire_choices
を入れたいです。
なにかご存知の方がいらっしゃいましたら、アドバイスを頂けますと幸いです。
宜しくお願いいたします。
Vue
1data() { 2 return { 3 questionnaire: "", 4 answers: [ 5 {}, 6 {}, 7 {} 8 ] 9 } 10}
発生している問題・エラーメッセージ
questionnaire_choices
が定義されていない
Error in data(): "TypeError: Cannot read property 'questionnaire_choices' of undefined"
該当のソースコード
Vue
1 data() { 2 return { 3 questionnaire: "", 4 options: { 5 answers: [ 6 { 7 value: this.questionnaire.questionnaire_choices[0].id, 8 text: this.questionnaire.questionnaire_choices[0].choice, 9 votes: this.questionnaire.questionnaire_choices[0].answers_count, 10 }, 11 { 12 value: this.questionnaire.questionnaire_choices[1].id, 13 text: this.questionnaire.questionnaire_choices[1].choice, 14 votes: this.questionnaire.questionnaire_choices[1].answers_count, 15 }, 16 { 17 value: this.questionnaire.questionnaire_choices[2].id, 18 text: this.questionnaire.questionnaire_choices[2].choice, 19 votes: this.questionnaire.questionnaire_choices[2].answers_count, 20 }, 21 ] 22 } 23 }; 24 },
試したこと
同じdata
内だとthis
で取ってこようとするのがいけないのか?と思い、this
を抜いてみましたが、参照できませんでした。
また、template
内では、下記のようにすることで正しくquestionnaire
内の値を参照できています。
Vue
1<template> 2 性別:{{ questionnaire.gender }} 3</template>
補足情報(FW/ツールのバージョンなど)
questionnaire
にはaxiosでRailsから取ってきたデータを格納しています。
this.$axios .get(`http://localhost:3000/api/v1/questionnaires/${this.$route.params.id}`) .then((res) => { this.$data.questionnaire = res.data; })
Rails 6.0.3.6
Vue 2.6.12
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/22 04:27 編集
2021/05/23 00:06