clearIntervalでsetIntervalしている処理を止めたいが、うまく実装できない。
JavaScript
1<template> 2<v-app> 3 4 5 <v-btn 6 v-if="isActive == true" 7 class="pa-5 ml-3" 8 depressed 9 color="blue lighten-4" 10 @click="shuffle(); active();"> 11 スタート 12 </v-btn> 13 14 <v-btn 15 v-else 16 class="pa-5 ml-3" 17 depressed 18 color="red lighten-4" 19 @click="stop(); active();"> 20 ストップ 21 </v-btn> 22 23 24 25 </div> 26 </v-app> 27</template> 28 29<script> 30 31 32export default { 33 name: 'App', 34 35 components: { 36 37 }, 38 39 40 random_number: null, 41 isActive: true 42 }), 43 methods: { 44 reload(){ 45 const self = this 46 clearInterval(self.repeat); 47 console.log("reload"); 48 49 }, 50 active(){ 51 this.isActive = !this.isActive; 52 }, 53 shuffle(){ 54 var repeat = setInterval(function loop() { 55 this.random_number = Math.floor(Math.random() * this.message.length); 56 }.bind(this), 100); 57 repeat; 58 } 59 60 }, 61 mounted: { 62 }, 63 destroyed: { 64 stop() { 65 clearInterval(this.repeat); 66 } 67 } 68}; 69</script> 70
処理はmethodsの中になります。
やってみたこと
・clearIntervalはsetintervalの戻り値を引数にしなければならないと出てきたため、setIntervalを変数に定義し、引数に入れる→clearInterval動作しない
https://developer.mozilla.org/ja/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval
追記
ストップボタンを押した際にsetIntervalがとまるようにしたい
わかる方いたら回答お願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。