子闪电组件init在父init salesforce之前执行

时间:2018-06-08 09:31:04

标签: salesforce-lightning

我有一个lightnoing应用程序App,其中包含一个闪电组件C1 该组件包含另一个C2,它实现了2个依赖的选项列表 问题是C2需要C1组件的属性值 但由于子组件init(C2)在父组件init(C1)之前执行,因此子组件无法正常工作 你能帮我么? 感谢

2 个答案:

答案 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中使用子组件