闪电Auraif渲染问题

时间:2019-06-22 15:59:11

标签: salesforce-lightning

我有一个复杂的应用程序,其中在应用程序内部的主组件中有10个子组件。

我正在将复杂类型从主组件传递到所有10个组件。

这有效,但是当我尝试引入auraif来隐藏/显示/渲染子组件时,aura应用程序会在加载时挂起。

父应用:

<aura:application ...
    <c:masterComp />
</aura:application>

Master Comp:          

<aura:attribute name="complexWrpObj" type="ComplexWrapperClass" />

<c:child1 complexWrpObj="{!v.complexWrpObj}" />
<c:child2 complexWrpObj="{!v.complexWrpObj}" />
<c:child3 complexWrpObj="{!v.complexWrpObj}" />
...
</aura:component>

Master Comp 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}" />

不确定我在做什么错

还有一个附带的问题,将属性中的对象传递给子对象会影响性能,也不会有助于改善性能。

0 个答案:

没有答案