У меня сложное приложение, в котором у меня есть 10 дочерних компонентов в главном компоненте, который находится внутри приложения.
Я передаю сложный тип из основного компонента во все 10 компонентов.
Это работает, но когда я пытаюсь ввести auraif для скрытия / показа / рендеринга дочерних компонентов, приложение aura зависает при загрузке.
Родительское приложение:
<aura:application ...
<c:masterComp />
</aura:application>
Мастер Комп:
<aura:attribute name="complexWrpObj" type="ComplexWrapperClass" />
<c:child1 complexWrpObj="{!v.complexWrpObj}" />
<c:child2 complexWrpObj="{!v.complexWrpObj}" />
<c:child3 complexWrpObj="{!v.complexWrpObj}" />
...
</aura:component>
Мастер Комп JS:
({
doInit: function(cmp) {
var action = cmp.get("c.severValue");
action.setCallback(this, function(response) {
var state = response.getState();
if (state === "SUCCESS") {
cmp.set("v.complexWrpObj", response.getReturnValue());
}
else if (state === "INCOMPLETE") {
}
else if (state === "ERROR") {
}
});
$A.enqueueAction(action);
}
})
Класс:
public class ComplexWrapperClass{
@AuraEnabled Map<String,Account> wrpMap {get;set;}
@AuraEnabled Map<String,boolean> showHideMap {get;set;}
@AuraEnabled Map<String,String> etc {get;set;}
public ComplexWrapperClass(){
showHide = Map<String,boolean>{'child1' : true, 'child2' : false ...};
}
}
Теперь, когда я это делаю, страница перестает загружаться, зависает и вообще зависает.
<aura:If isTrue="{!v.complexWrpObj.showHideMap.child1}">
<c:child1 complexWrpObj="{!v.complexWrpObj}" />
</aura:If>
<c:child2 complexWrpObj="{!v.complexWrpObj}" />
<c:child3 complexWrpObj="{!v.complexWrpObj}" />
Не уверен, что я делаю не так.
Также дополнительный вопрос, будет ли передача объектов в атрибутах дочернему элементу влиять на производительность, а также отсутствие разметки поможет в улучшении производительности.