From d2636ed737ed07c626f18f088bb27361df7edfa7 Mon Sep 17 00:00:00 2001 From: betavs Date: Sun, 20 Jul 2025 14:15:00 +0800 Subject: [PATCH 1/2] fix(skeleton): component does not disappear as expected when the delay setting is large --- src/skeleton/skeleton.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/skeleton/skeleton.ts b/src/skeleton/skeleton.ts index e2d3982f8d..76e4f44d8f 100644 --- a/src/skeleton/skeleton.ts +++ b/src/skeleton/skeleton.ts @@ -28,6 +28,8 @@ export default class Skeleton extends SuperComponent { properties = props; + timer = undefined; + data = { prefix, classPrefix: name, @@ -128,16 +130,22 @@ export default class Skeleton extends SuperComponent { }, isShowSkeleton() { + if (this.timer) { + clearTimeout(this.timer); + } + const { loading, delay } = this.properties; + if (!loading || delay === 0) { this.setData({ isShow: loading, }); return; } - setTimeout(() => { + + this.timer = setTimeout(() => { this.setData({ - isShow: loading, + isShow: this.properties.loading, }); }, delay); }, From 67b67d9160ae6aaf78bc51699b64ccb1da9bc843 Mon Sep 17 00:00:00 2001 From: anlyyao Date: Tue, 22 Jul 2025 18:32:41 +0800 Subject: [PATCH 2/2] chore: add clearTimeout func --- src/skeleton/skeleton.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/skeleton/skeleton.ts b/src/skeleton/skeleton.ts index 76e4f44d8f..e9369c9c19 100644 --- a/src/skeleton/skeleton.ts +++ b/src/skeleton/skeleton.ts @@ -50,6 +50,10 @@ export default class Skeleton extends SuperComponent { this.init(); this.isShowSkeleton(); }, + + detached() { + this.clearTimer(); + }, }; methods = { @@ -129,10 +133,15 @@ export default class Skeleton extends SuperComponent { return style; }, - isShowSkeleton() { + clearTimer() { if (this.timer) { clearTimeout(this.timer); + this.timer = null; } + }, + + isShowSkeleton() { + this.clearTimer(); const { loading, delay } = this.properties;