我有一个lightnoing应用程序App,其中包含一个闪电组件C1 该组件包含另一个C2,它实现了2个依赖的选项列表 问题是C2需要C1组件的属性值 但由于子组件init(C2)在父组件init(C1)之前执行,因此子组件无法正常工作 你能帮我么? 感谢
答案 0 :(得分:1)
该问题的快速解决方案是,您可以在 C2 组件中使用 change 处理程序,而不是使用 init 处理程序。因此,代码将类似于
({
doAction : function(component, event, helper) {
// Access "data" using standard component.get()
}
})
<!-- C1 component -->
<aura:component>
<aura:attribute name="dataForC2" type="Object"/>
<c:C2 data = "{!v.dataForC2}"/>
</aura:component>
<!-- C2 component -->
<aura:component>
<aura:attribute name="data" type="Object"/>
<aura:handler name="change" value="{!v.data}" action="{!c.doAction}"/>
</aura:component>
答案 1 :(得分:0)
要解决此问题,您需要在parent的init方法完成后为其创建一个布尔属性,然后将其设置为true,以便将其用于子init方法
注意:在子组件aura:if中使用子组件