Aframe 从this.el遍历到parentEl将返回未定义的元素,但反过来返回元素

Aframe 从this.el遍历到parentEl将返回未定义的元素,但反过来返回元素,aframe,Aframe,我试图建立一个从子元素到其父元素中组件的引用。我希望能够通过在init()函数中调用this.el.parentEl.components['parent']来引用它,但这将返回未定义 其他测试用例工作正常: 1.从父零部件中引用子零部件在父零部件中可以正常工作。 2.从html下面的代码段引用父组件。 3.从html下面的代码片段的子元素引用父组件 这是生命周期的问题吗?在这种情况下,为什么孩子和父母之间存在差异 <script src="https://aframe.io/aframe

我试图建立一个从子元素到其父元素中组件的引用。我希望能够通过在init()函数中调用
this.el.parentEl.components['parent']
来引用它,但这将返回未定义

其他测试用例工作正常: 1.从父零部件中引用子零部件在父零部件中可以正常工作。 2.从html下面的代码段引用父组件。 3.从html下面的代码片段的子元素引用父组件

这是生命周期的问题吗?在这种情况下,为什么孩子和父母之间存在差异

<script src="https://aframe.io/aframe/dist/aframe-master.min.js"></script>

<script>

  AFRAME.registerComponent('parent', {

    multiple: false,

    init: function () {
      this.child = this.el.children[0].components['child']
      console.log("child component: ", this.child); //This works
    }        
  })


  AFRAME.registerComponent('child', {

    multiple: false,

    init: function () {
      this.parent = this.el.parentEl.components['parent']
      console.log("parent component: ", this.parent); //Undefined
    }        
  })

</script>

AFRAME.registerComponent('parent'{
多重:假,
init:函数(){
this.child=this.el.children[0]。组件['child']
console.log(“子组件:”,this.child);//这很有效
}        
})
AFRAME.registerComponent('child'{
多重:假,
init:函数(){
this.parent=this.el.parentEl.components['parent']
console.log(“父组件:”,this.parent);//未定义
}        
})


var parent=document.querySelector('[parent]').components.parent
log(“下面的父组件:”,父组件)//这很有效
var parentfromchild=document.querySelector('[child]').parentEl.components['parent']
log(“来自下面的子对象的父对象:”,parentfromchild)//这很有效

调用
init
时,父级尚未初始化。场景从子对象加载到父对象。通过收听
loaded
事件等待场景加载:

我建议使用Glitch提供一个说明问题的可执行示例
<a-scene>

  <a-entity parent>
    <a-entity child></a-entity>
  </a-entity>

</a-scene>


<script>

  var parent = document.querySelector('[parent]').components.parent
  console.log("parent component from below: ", parent); //This works

  var parentfromchild = document.querySelector('[child]').parentEl.components['parent']
  console.log("parent from child from below: ", parentfromchild); //This works

</script>