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
|
||||
if (ctx && ctx.ut) {
|
||||
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)
|
||||
node = node.nextSibling
|
||||
}
|
||||
|
|
|
@ -275,4 +275,22 @@ describe('useCssVars', () => {
|
|||
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