fix(runtime-core): fix instance accessed via $parent chain when using expose() (#4048)

This commit is contained in:
Austin Keener
2021-07-02 07:51:54 -04:00
committed by GitHub
parent 735ada1507
commit 12cf9f4ea1
2 changed files with 12 additions and 2 deletions

View File

@@ -171,13 +171,20 @@ describe('api: expose', () => {
})
test('expose should allow access to built-in instance properties', () => {
const GrandChild = defineComponent({
render() {
return h('div')
}
})
const grandChildRef = ref()
const Child = defineComponent({
render() {
return h('div')
},
setup(_, { expose }) {
expose()
return {}
return () => h(GrandChild, { ref: grandChildRef })
}
})
@@ -190,5 +197,7 @@ describe('api: expose', () => {
const root = nodeOps.createElement('div')
render(h(Parent), root)
expect(childRef.value.$el.tag).toBe('div')
expect(grandChildRef.value.$parent).toBe(childRef.value)
expect(grandChildRef.value.$parent.$parent).toBe(grandChildRef.value.$root)
})
})