Skip to content

Commit d901ba4

Browse files
betavsanlyyao
andauthored
fix(skeleton): component does not disappear as expected when the delay setting is large (#3793)
* fix(skeleton): component does not disappear as expected when the delay setting is large * chore: add clearTimeout func --------- Co-authored-by: anlyyao <anly_yaw@163.com>
1 parent c0d5e63 commit d901ba4

1 file changed

Lines changed: 19 additions & 2 deletions

File tree

src/skeleton/skeleton.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ export default class Skeleton extends SuperComponent {
2828

2929
properties = props;
3030

31+
timer = undefined;
32+
3133
data = {
3234
prefix,
3335
classPrefix: name,
@@ -48,6 +50,10 @@ export default class Skeleton extends SuperComponent {
4850
this.init();
4951
this.isShowSkeleton();
5052
},
53+
54+
detached() {
55+
this.clearTimer();
56+
},
5157
};
5258

5359
methods = {
@@ -127,17 +133,28 @@ export default class Skeleton extends SuperComponent {
127133
return style;
128134
},
129135

136+
clearTimer() {
137+
if (this.timer) {
138+
clearTimeout(this.timer);
139+
this.timer = null;
140+
}
141+
},
142+
130143
isShowSkeleton() {
144+
this.clearTimer();
145+
131146
const { loading, delay } = this.properties;
147+
132148
if (!loading || delay === 0) {
133149
this.setData({
134150
isShow: loading,
135151
});
136152
return;
137153
}
138-
setTimeout(() => {
154+
155+
this.timer = setTimeout(() => {
139156
this.setData({
140-
isShow: loading,
157+
isShow: this.properties.loading,
141158
});
142159
}, delay);
143160
},

0 commit comments

Comments
 (0)