我有一个复杂的应用程序,其中在应用程序内部的主组件中有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}" />
不确定我在做什么错
还有一个附带的问题,将属性中的对象传递给子对象会影响性能,也不会有助于改善性能。