Есть ли у нас какое-либо событие в молнии, которое срабатывает после того, как все дочерние компоненты родительского компонента рендерились? - PullRequest
0 голосов
/ 05 октября 2019

В основном, в молнии есть родительский компонент, который содержит дочерний компонент, называемый трижды, с передачей различных значений атрибутов каждый раз как:

####### код компонента
<parentcomp>
<aura:attribute name="showComp" type="Boolean" default="true"/>
<aura:attribute name="mathsQuestions" type="Integer" default="0"/>
<aura:attribute name="scienceQuestions" type="Integer" default="0"/>
<aura:attribute name="englishQuestions" type="Integer" default="0"/>
<aura:handler event="aura:doneRendering" action="{!c.doneRendering}"/>
<aura:attribute name="isDoneRendering" type="Boolean" default="false"/>
<aura:if isTrue="{!v.showComp}">
  <c:childcmp questions="{!v.mathsQuestions}"/>
  <c:childcmp questions="{!v.scienceQuestions}"/>
  <c:childcmp questions="{!v.englishQuestions}"/>
   <aura:set attribute="else">
    Some HTML elements
   </aura:set>
</aura:if>
</parentcomp>

################controller code#################
({
  doneRendering: function(cmp, event, helper) {
    if(!cmp.get("v.isDoneRendering")){
      cmp.set("v.isDoneRendering", true);
      if(cmp.get('v.mathsQuestions')==0 && cmp.get('v.scienceQuestions')==0 && cmp.get('v.englishQuestions')==0)
       cmp.set('v.showComp',false);
   else
       cmp.set('v.showComp',true);
    }
  }
})

Проблема, с которой я сталкиваюсь:есть ли вопросы в соответствующем дочернем вызове или нет, соответствующие параметры вопроса родителя не обновляются, потому что событие завершенного рендеринга запускается до вызова дочерних компонентов, и, таким образом, каждый раз устанавливает логическое значение showComp в значение false в зависимости от значения по умолчаниювопросы по математике / естественным наукам / английскому и, следовательно, аура: if не позволяет дочернему компоненту вызывать в любом случаеЛюбые предложения или обходные пути приветствуются.

...