diff --git a/packages/runtime-vapor/__tests__/components/Teleport.spec.ts b/packages/runtime-vapor/__tests__/components/Teleport.spec.ts index 45a2e5858c0..d4282ab8a6e 100644 --- a/packages/runtime-vapor/__tests__/components/Teleport.spec.ts +++ b/packages/runtime-vapor/__tests__/components/Teleport.spec.ts @@ -195,7 +195,7 @@ describe('renderer: VaporTeleport', () => { expect(target.innerHTML).toBe('
teleported 2
') }) - test.todo('parent rerender + toggle disabled', async () => { + test('parent rerender + toggle disabled', async () => { const target = document.createElement('div') const root = document.createElement('div') const parentId = 'test3-parent-rerender' diff --git a/packages/runtime-vapor/src/renderEffect.ts b/packages/runtime-vapor/src/renderEffect.ts index d41ee357191..3c937c0ed58 100644 --- a/packages/runtime-vapor/src/renderEffect.ts +++ b/packages/runtime-vapor/src/renderEffect.ts @@ -41,6 +41,9 @@ export class RenderEffect extends ReactiveEffect { this.onTrigger = instance.rtg ? e => invokeArrayFns(instance.rtg!, e) : void 0 + + // register effect for stopping them during HMR rerender + ;(instance.renderEffects || (instance.renderEffects = [])).push(this) } job.i = instance } @@ -71,11 +74,6 @@ export class RenderEffect extends ReactiveEffect { setCurrentInstance(...prev) if (__DEV__ && instance) { startMeasure(instance, `renderEffect`) - - if (instance.renderEffects) { - instance.renderEffects.forEach(e => e.stop()) - instance.renderEffects = [] - } } }