fix(compiler-core): fix forwarded slots detection on template slots (#4124)

fix #4123
This commit is contained in:
edison 2021-07-15 23:37:11 +08:00 committed by GitHub
parent 6a0c7cd905
commit c23153d82e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View File

@ -771,6 +771,13 @@ describe('compiler: transform component slots', () => {
const { slots } = parseWithSlots(`<Comp><slot v-for="a in b"/></Comp>`)
expect(slots).toMatchObject(toMatch)
})
test('<slot> tag w/ template', () => {
const { slots } = parseWithSlots(
`<Comp><template #default><slot/></template></Comp>`
)
expect(slots).toMatchObject(toMatch)
})
})
describe('errors', () => {

View File

@ -384,7 +384,8 @@ function hasForwardedSlots(children: TemplateChildNode[]): boolean {
case NodeTypes.ELEMENT:
if (
child.tagType === ElementTypes.SLOT ||
(child.tagType === ElementTypes.ELEMENT &&
((child.tagType === ElementTypes.ELEMENT ||
child.tagType === ElementTypes.TEMPLATE) &&
hasForwardedSlots(child.children))
) {
return true