[bugfix] Transition: 修复leave阶段时节点不消失

fix #1565
This commit is contained in:
rex 2019-05-14 11:14:50 +08:00 committed by GitHub
parent a1ca50d003
commit 98ce810986
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,7 +7,7 @@ const getClassNames = (name: string) => ({
'leave-to': `van-${name}-leave-to van-${name}-leave-active leave-to-class leave-active-class` 'leave-to': `van-${name}-leave-to van-${name}-leave-active leave-to-class leave-active-class`
}); });
const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 30)); const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 20));
export const transition = function(showDefaultValue: boolean) { export const transition = function(showDefaultValue: boolean) {
return Behavior({ return Behavior({
@ -84,11 +84,6 @@ export const transition = function(showDefaultValue: boolean) {
const { classNames, duration } = this.data; const { classNames, duration } = this.data;
const currentDuration = isObj(duration) ? duration.leave : duration; const currentDuration = isObj(duration) ? duration.leave : duration;
if (+currentDuration === 0) {
this.onTransitionEnd();
return;
}
Promise.resolve() Promise.resolve()
.then(nextTick) .then(nextTick)
.then(() => .then(() =>
@ -97,6 +92,7 @@ export const transition = function(showDefaultValue: boolean) {
currentDuration currentDuration
}) })
) )
.then(() => setTimeout(() => this.onTransitionEnd(), currentDuration))
.then(nextTick) .then(nextTick)
.then(() => .then(() =>
this.set({ this.set({