Przeglądaj źródła

Carousel: stop timer before component destroyed (#13820)

Carousel: stop timer before component destroyed (#13820)
Harlan 6 lat temu
rodzic
commit
91c40d311e
1 zmienionych plików z 6 dodań i 2 usunięć
  1. 6 2
      packages/carousel/src/main.vue

+ 6 - 2
packages/carousel/src/main.vue

@@ -181,11 +181,14 @@ export default {
     },
 
     pauseTimer() {
-      clearInterval(this.timer);
+      if (this.timer) {
+        clearInterval(this.timer);
+        this.timer = null;
+      }
     },
 
     startTimer() {
-      if (this.interval <= 0 || !this.autoplay) return;
+      if (this.interval <= 0 || !this.autoplay || this.timer) return;
       this.timer = setInterval(this.playSlides, this.interval);
     },
 
@@ -257,6 +260,7 @@ export default {
 
   beforeDestroy() {
     if (this.$el) removeResizeListener(this.$el, this.resetItemPosition);
+    this.pauseTimer();
   }
 };
 </script>