В основном, в молнии есть родительский компонент, который содержит дочерний компонент, называемый трижды, с передачей различных значений атрибутов каждый раз как:
####### код компонента
<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 не позволяет дочернему компоненту вызывать в любом случаеЛюбые предложения или обходные пути приветствуются.