With summer’18 release of salesforce, there is some good news for salesforce developers. Salesforce introduces some new components to build application more faster and easier. One of them is lightning:navigation component. We can use this component to generate salesforce URL from pagereference or generate a pagereference without manually building it. Let’s learn more about this component.
Methods
It has following two methods :
- generateUrl : This method is use to generate url for a given page reference. This method used ‘page reference’ as parameter.
- navigate : This method is used to navigate to specified page reference. This method used two parameters ‘page reference’ and ‘replace’.
#page reference : It is an object which have following properties.
- type : It defines api name of page, for example : for standard object page we use ‘standard__objectPage’ , for record page type we use ‘standard__recordPage’. It is required.
- attributes : It is also required. It defines the value for each attribute to generate pagereference, for example objectApiName, recordId, action.
- state : This property is optional. This property defines parameter of page url to be generated.
#replace : It is boolean value which indicates whether new page should replace the current page in navigation history. It is optional.
Note : To use this component we must implement “home:availableForDesktop” or “flexipage:availableForAllPageTypes” interface.
Example
In this example we are going to generate a navigation link which navigate to standard account list page and a record view page.
#Component
<aura:component implements="flexipage:availableForAllPageTypes"> <aura:attribute name="url" type="String"/> <aura:handler name="init" value="{! this }" action="{! c.setPagref }"/> <lightning:navigation aura:id="navLink"/> <div> <a href="{!v.url}" target="_blank"> Go to Account </a> <br/> <lightning:button label="Andy Young" title="Andy Young" onclick="{!c.goToRec}" variant="success"/> </div> </aura:component>
#Controller
({ setPagref : function(component, event, helper) { var navLink = component.find("navLink"); var pageRef = { type: 'standard__objectPage', attributes: { actionName: 'list', objectApiName: 'Account', }, state: { filterName: "MyAccounts" } }; // Set the URL on the link or use the default if there's an error navLink.generateUrl(pageRef).then($A.getCallback(function(a) { component.set("v.url", a ? a : "#"); }), $A.getCallback(function(error) { component.set("v.url", "#"); })); }, ge : function(component, event, helper) { var navLink = component.find("navLink"); var pageRef = { type: 'standard__recordPage', attributes: { actionName: 'view', objectApiName: 'Contact', recordId : '0037FXXX51uq5QAA' // change record id. }, }; navLink.navigate(pageRef, true); } })
Output
Support
That’s all about lighning:navigation in lightning component still if you have any further query, feel free to contact us, we will be happy to help you
https://wedgecommerce.com/contact-us/