Carousel: stop timer before component destroyed (#13820)

pull/13830/head
HarlanLuo 2018-12-20 11:37:35 +08:00
parent 16311d1e32
commit 23e81831fe
1 changed files with 6 additions and 2 deletions

View File

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