前提・実現したいこと
以下に記述しているjsonファイルからdataの真偽値をgetし、それに伴いdataのidがtrueなもののみv-ifで表示しようとしています。
さらにいえば、最初に表示するテキストは一つのみ(一番最初のtrueのdata)で、「次へ」または「戻る」ボタンを押すことで、index.vueのthis.idの真偽値を切り替え、表示したいと考えています。
(currentのようなdataを作って+-していくことでdataの真偽値を切り替える?)
例えば、[id02, id05, id08, id09]
がtrueのdataをjsonからgetした場合、
最初にデフォルトとしてthis.id.id02 = true
にし、「次へ」ボタンを押すことで、this.id.id02 = false
, this.id.id05 = true
にするといったような処理を実現したいです。
イメージはタブの切り替えのような感じです。
currentの増減はmethodsを定義することによって行おうとしてますが、それ以前の処理で詰まっています。
色々調べてみましたが、解決できそうにないためアドバイスいただけないでしょうか?
よろしくお願いいたします。
該当のソースコード
javascript
1<template> 2 <section class="container"> 3 <p v-if="id.id01">this is id01</p> 4 <p v-if="id.id02">this is id02</p> 5 <p v-if="id.id03">this is id03</p> 6 <p v-if="id.id04">this is id04</p> 7 <p v-if="id.id05">this is id05</p> 8 <p v-if="id.id06">this is id06</p> 9 <p v-if="id.id07">this is id07</p> 10 <p v-if="id.id08">this is id08</p> 11 <p v-if="id.id09">this is id09</p> 12 <p v-if="id.id10">this is id10</p> 13 <div class="btn-wrapper"> 14 <div class="btn__inner-wrapper"> 15 <button type="button" class="btn-back">戻る</button> 16 <button type="button" class="btn-next">次へ</button> 17 </div> 18 </div> 19 </section> 20</template> 21<script> 22//別ファイルで定義したrequest関数を読み込み(axiosでgetをしています) 23import { request } from "~/data-sample/index"; 24 25export default { 26 data() { 27 return { 28 id: { 29 id01: false, 30 id02: false, 31 id03: false, 32 id04: false, 33 id05: false, 34 id06: false, 35 id07: false, 36 id08: false, 37 id09: false, 38 id10: false 39 } 40 }; 41 }, 42 mounted() { 43 //読み込んだrequest関数を使用 44 request(this.$axios, this.$router) 45 .then(response => { 46 // trueのidのみ取得しオブジェクトを生成 47 const activeKeys = Object.keys(response.id).reduce((o, key) => { 48 if (response.id[key]) o[key] = response.id[key]; 49 return o; 50 //result {"id02": true, "id05": true, "id08": true, "id09": true,} 51 }, {}); 52 }) 53 } 54}; 55</script>
json
1{ 2 "id": { 3 "id01": false, 4 "id02": true, 5 "id03": false, 6 "id04": false, 7 "id05": true, 8 "id06": false, 9 "id07": false, 10 "id08": true, 11 "id09": true, 12 "id10": false 13 } 14}
試したこと
とりあえず、jsonでgetしたdataをtrueのもののみオブジェクトとして生成しました。
そこからさきがわかりません。。
どなたかお力お借りできましたら幸いです。
補足情報(FW/ツールのバージョンなど)
"nuxt": "^2.4.2"
"vue": "^3.2.1"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/07 03:51