diff --git a/packages/components/image-viewer/image-viewer.tsx b/packages/components/image-viewer/image-viewer.tsx index 167c267a24..6462935fd9 100644 --- a/packages/components/image-viewer/image-viewer.tsx +++ b/packages/components/image-viewer/image-viewer.tsx @@ -1,5 +1,5 @@ import { BrowseIcon, ChevronDownIcon, ChevronLeftIcon, CloseIcon } from 'tdesign-icons-vue-next'; -import { Teleport, Transition, computed, defineComponent, nextTick, ref, toRefs, watch } from 'vue'; +import { Teleport, Transition, computed, defineComponent, nextTick, onBeforeUnmount, ref, toRefs, watch } from 'vue'; import { useVModel, @@ -160,6 +160,11 @@ export default defineComponent({ }, ); + // Clean up timer when component is unmounted to prevent memory leaks and errors + onBeforeUnmount(() => { + clearTimeout(animationTimer.value); + }); + const onWheel = (e: WheelEvent) => { e.preventDefault(); const { deltaY } = e; diff --git a/packages/tdesign-vue-next/.changelog/pr-6203.md b/packages/tdesign-vue-next/.changelog/pr-6203.md new file mode 100644 index 0000000000..3aa0cec617 --- /dev/null +++ b/packages/tdesign-vue-next/.changelog/pr-6203.md @@ -0,0 +1,6 @@ +--- +pr_number: 6203 +contributor: Copilot +--- + +- fix(image-viewer): 在组件卸载时清除动画定时器 @Copilot ([#6203](https://github.com/Tencent/tdesign-vue-next/pull/6203))