質問失礼いたします。
swiper.jsでスライド機能を実装しているのですが、initial-slideオプションの値をaxiosで取得した数値にしたいのですが、恐らくaxiosで非同期でデータを取得してからオプションに入れると順番的にうまくいかないようで何かいい方法はありますでしょうか。ちなみにonMounted(() => { ここに処理 });でやっても駄目でした。
vue
1<swiper :space-between="20" :initial-slide="dataNum"> 2 <swiper-slide class="item" v-for="hoge in hoges" :key="hoge"> 3 </swiper-slide> 4</swiper>
うまくいくコード
vue
1<script lang="ts"> 2 import axios from 'axios'; 3 4 export default { 5 setup() { 6 const dataNum = ref(7); 7 return { 8 ref, 9 dataNum 10 }; 11 } 12 } 13</script>
うまくいかないコード
vue
1<script lang="ts"> 2 import axios from 'axios'; 3 4 export default { 5 setup() { 6 const dataNum = ref(); 7 axios.get( 8 `/api-date`, 9 ).then(response => { 10 dataNum.value = response.data.num; // 結果は7 11 }); 12 return { 13 ref, 14 dataNum 15 }; 16 } 17 } 18</script>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。