fix: parent chain error when root is functional

This commit is contained in:
Evan You 2018-10-28 12:08:20 -04:00
parent 832d715afe
commit 01bb8d1894

View File

@ -77,18 +77,17 @@ export function initializeComponentInstance(instance: ComponentInstance) {
// parent chain management
if (currentContextVNode !== null) {
// locate first non-functional parent
while (
currentContextVNode !== null &&
currentContextVNode.flags & VNodeFlags.COMPONENT_FUNCTIONAL &&
currentContextVNode.contextVNode !== null
) {
currentContextVNode = currentContextVNode.contextVNode as any
while (currentContextVNode !== null) {
if ((currentContextVNode.flags & VNodeFlags.COMPONENT_STATEFUL) > 0) {
const parentComponent = (currentContextVNode as VNode)
.children as ComponentInstance
instance.$parent = parentComponent.$proxy
instance.$root = parentComponent.$root
parentComponent.$children.push(proxy)
break
}
currentContextVNode = currentContextVNode.contextVNode
}
const parentComponent = (currentContextVNode as VNode)
.children as ComponentInstance
instance.$parent = parentComponent.$proxy
instance.$root = parentComponent.$root
parentComponent.$children.push(proxy)
} else {
instance.$root = proxy
}