From: 白雾三语 <32354856+baiwusanyu-c@users.noreply.github.com> Date: Tue, 11 Jul 2023 09:36:26 +0000 (+0800) Subject: fix(teleport): handle target change while disabled (#7837) X-Git-Tag: v3.3.5~68 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=140a89b833bceed60838182b875d2953c70af114;p=thirdparty%2Fvuejs%2Fcore.git fix(teleport): handle target change while disabled (#7837) close #7835 --- diff --git a/packages/runtime-core/__tests__/components/Teleport.spec.ts b/packages/runtime-core/__tests__/components/Teleport.spec.ts index 57180ea139..7371f53f7b 100644 --- a/packages/runtime-core/__tests__/components/Teleport.spec.ts +++ b/packages/runtime-core/__tests__/components/Teleport.spec.ts @@ -475,4 +475,57 @@ describe('renderer: teleport', () => { expect(dir.mounted).toHaveBeenCalledTimes(1) expect(dir.unmounted).toHaveBeenCalledTimes(1) }) + + // #7835 + test(`ensure that target changes when disabled are updated correctly when enabled`, async () => { + const root = nodeOps.createElement('div') + const target1 = nodeOps.createElement('div') + const target2 = nodeOps.createElement('div') + const target3 = nodeOps.createElement('div') + const target = ref(target1) + const disabled = ref(true) + + const App = { + setup() { + return () => + h(Fragment, [ + h( + Teleport, + { to: target.value, disabled: disabled.value }, + h('div', 'teleported') + ) + ]) + } + } + render(h(App), root) + disabled.value = false + await nextTick() + expect(serializeInner(target1)).toMatchInlineSnapshot( + `"