diff --git a/packages/reactivity/src/effectScope.ts b/packages/reactivity/src/effectScope.ts index 7c3dbc989..fcacab6e3 100644 --- a/packages/reactivity/src/effectScope.ts +++ b/packages/reactivity/src/effectScope.ts @@ -29,10 +29,10 @@ export class EffectScope { run(fn: () => T): T | undefined { if (this.active) { try { - this.on() + activeEffectScope = this return fn() } finally { - this.off() + activeEffectScope = this.parent } } else if (__DEV__) { warn(`cannot run an inactive effect scope.`) @@ -40,15 +40,11 @@ export class EffectScope { } on() { - if (this.active) { - activeEffectScope = this - } + activeEffectScope = this } off() { - if (this.active) { - activeEffectScope = this.parent - } + activeEffectScope = this.parent } stop(fromParent?: boolean) {