Lightning auraif рендер выпуск - PullRequest
0 голосов
/ 22 июня 2019

У меня сложное приложение, в котором у меня есть 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}" />

Не уверен, что я делаю не так.

Также дополнительный вопрос, будет ли передача объектов в атрибутах дочернему элементу влиять на производительность, а также отсутствие разметки поможет в улучшении производительности.

...