A component 1 redirect me to a component 2 and I'd like that in component 2, when I click on a return button, I'm redirected to component 1.
For navigate from component 2 to component 1, I use an event.
Component 2 :
<aura:registerEvent name="displayList" type="c.B_NavigateToList" />
<button class="slds-button" onclick="{!c.goBack}">
<lightning:icon iconName="action:back" size="small" class="icon" variant="bare"/>
</button>
The controller JS of component 2:
goBack : function(component, event, helper){
console.log("retour vers la liste");
var evt = $A.get("e.c:B_NavigateToList");
evt.fire();
}
The event B_NavigateToList
is a simple event with no parameter.
The main component, that display components 1 or 2, capturing the event :
<aura:handler event="c:B_NavigateToList" action="{!c.doInit}"/>
{!v.body}
Ant its controller method doInit
:
doInit : function(component, event, helper) {
$A.createComponent(
"c:B_ContactComponent",
{
},
function(newCmp){
if (component.isValid()) {
component.set("v.body", newCmp);
}
}
);
},
So when I'm on the component 2 and I click on the return button, I got a javascript error :
rerender threw an error in 'markup://aura:expression' [Cannot read property 'childNodes' of null] Failing descriptor: {markup://aura:expression}
EDIT
I change the controller JS of component 2 like that :
goBack : function(component, event, helper){
console.log("retour vers la liste");
var evt = $A.get("e.force:navigateToComponent");
evt.setParams({
componentDef : "c:B_ContactComponent",
});
evt.fire();
}
And now when I click the return button I don't get any error but nothing happen and I stay on component 2 instead of being redirected to component 1 (named "B_ContactComponent" ).
goBack
method – dou Mar 9 '17 at 8:52