Событие приложения Aura запускается успешно, но кажется, что компонент-обработчик не может его прослушать или обработать, и он не вызывает метод действия openFeed. Это компонент, обрабатывающий событие приложения.
<aura:component controller="ConnectApiCallsController">
<aura:attribute name="yourfeed" type="PortalFeedWrapper[]" access="public"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}" />
<aura:handler event="c:DraggableNavEvent" action="{!c.openFeed}" />
<aura:handler event="aura:doneRendering" action="{!c.doneRendering}" /> // not working if removing this line
<div>
<div class="feedWrapper slds-scrollable" >
<div class="tab">
<c:HorizontalDraggableNav/>
</div>
<div id="yourFeedTab" class="tabcontent">
<c:YourFeedWrapper feeds="{!v.yourfeed}"/>
</div>
<div id="discussionsByTopicsTab" class="tabcontent">
<c:DiscussionsByTopicsWrapper />
</div>
<!-- PrivateFeeds By THiru-->
<div id="privateFeedTab" class="tabcontent">
<c:PrivateFeedWrapper isUserInternal="{!v.isInternalUser}"/>
</div>
</div>
</div>
</aura:component>
Когда я удаляю doneRendering из компонента, то openFeed вызывается нормально, но дело в том, почему для работы должен быть doneRendering? У меня нет метода doneRendering, объявленного на контроллере. Что я делаю не так, что doneRendering должен оставаться там, чтобы он работал? Кроме того, это родительский компонент, в то время как компонент, запускающий событие приложения, - c: HorizontalDraggableNav, используя следующий код:
var appEvent = $A.get("e.c:DraggableNavEvent");
appEvent.setParams({ feedType: e.target.id });
appEvent.fire();
и компонент выглядит следующим образом:
<aura:component>
<aura:handler name="init" value="{!this}" action="{!c.doInit}" />
<aura:handler name="render" value="{!this}" action="{!c.onRender}" />
<aura:attribute name="isLoginUserInternal" type="Boolean" default="false" /> <!-- PrivateFeeds By Thiru-->
<aura:registerEvent name="appEvent" type="c:DraggableNavEvent" />
<div class="grid-container">
<div class="grid-item main">
<div class="items" id="items">
<div class="item" id="yourFeed">Your feed</div>
<div class="item" id="discussionsByTopics">Discussions by topics</div>
<!-- PrivateFeeds By Thiru-->
<aura:if isTrue="{!v.isLoginUserInternal}">
<div class="item" id="privateFeed">Valmet internal</div>
</aura:if>
</div>
</div>
</div>
</aura:component>
Есть идеи или решения по этой проблеме?