mirror of https://github.com/vuejs/core.git
fix(runtime-core): fix error when using cssvars with disabled teleport (#7341)
close #7342
This commit is contained in:
parent
75b8722135
commit
8f0472c9ab
|
@ -414,7 +414,7 @@ function updateCssVars(vnode: VNode) {
|
||||||
const ctx = vnode.ctx
|
const ctx = vnode.ctx
|
||||||
if (ctx && ctx.ut) {
|
if (ctx && ctx.ut) {
|
||||||
let node = (vnode.children as VNode[])[0].el!
|
let node = (vnode.children as VNode[])[0].el!
|
||||||
while (node !== vnode.targetAnchor) {
|
while (node && node !== vnode.targetAnchor) {
|
||||||
if (node.nodeType === 1) node.setAttribute('data-v-owner', ctx.uid)
|
if (node.nodeType === 1) node.setAttribute('data-v-owner', ctx.uid)
|
||||||
node = node.nextSibling
|
node = node.nextSibling
|
||||||
}
|
}
|
||||||
|
|
|
@ -275,4 +275,22 @@ describe('useCssVars', () => {
|
||||||
expect((c as HTMLElement).style.getPropertyValue(`--color`)).toBe('red')
|
expect((c as HTMLElement).style.getPropertyValue(`--color`)).toBe('red')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('with teleport(disabled)', async () => {
|
||||||
|
document.body.innerHTML = ''
|
||||||
|
const state = reactive({ color: 'red' })
|
||||||
|
const root = document.createElement('div')
|
||||||
|
const target = document.body
|
||||||
|
|
||||||
|
const App = {
|
||||||
|
setup() {
|
||||||
|
useCssVars(() => state)
|
||||||
|
return () => [h(Teleport, { to: target, disabled: true }, [h('div')])]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(() => render(h(App), root)).not.toThrow(TypeError)
|
||||||
|
await nextTick()
|
||||||
|
expect(target.children.length).toBe(0)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue