Compártelo con tus amigos!

Una de las herramientas que nos ofrece Salesforce es la navegación en Lightning Web Components. Esto se puede realizar en Lightning Experience, Experience Builder Sites y en Salesforce Mobile App haciendo uso del servicio ‘lightning/navigation’.

Navegación Básica en Lightning Web Components

Se usa el servicio ‘lightning/navigation’ para poder navegar a diferentes tipos de paginas. Así mismo, se puede usar este servicio para abrir archivos.

El servicio ‘lightning/navigation’ usa un objeto PageReference para describir la navegación a realizar. Sus propiedades son:

  • Type: es una propiedad obligatorio que genera un formato de URL único y define atributos que se aplican a todas las páginas de ese tipo. Por ejemplo: standard__app, standard__navItemPage, standard__webPage, etc.
  • Attributes: es una propiedad obligatoria tipo Objeto que se usa para definir la pagina destino. La propiedad Type nos permite definir el conjunto de Atributtes.
  • State: Esta propiedad opcional nos permite personalizar condicionalmente el contenido dentro de una página determinada.

Ejemplo de un objeto PageReference que nos permite navegar a un ListView Recent de Accounts:

{
    type: 'standard__objectPage',
    attributes: {
        objectApiName: 'Account',
        actionName: 'list'
    },
    state: {
        filterName: 'Recent'
    }
}

¿Cómo usamos el Servicio de Navegación en Salesforce?

El servicio de Navegación se usa en el código de Javascript de un Lightning Web Component. Para utilizarlo, importamos el modulo ‘lightning/navigation’.

import { NavigationMixin } from 'lightning/navigation';

Aplicamos la función ‘NavigationMixin’ a la clase base del componente.

export default class MyCustomElement extends NavigationMixin(LightningElement) {}

Además, también debemos declarar un objeto PageReference para definir la página a donde queremos navegar. Por ejemplo un objeto que nos permita navegar a una Web Page que contenga pagina de Salesforce(http://salesforce.com)

{
    type: 'standard__webPage',
    attributes: {
        url: 'http://salesforce.com'
    }
}

Ejemplo de Navegación en Lightning Web Component

En el siguiente ejemplo, creamos un link en una plantilla de un Lightning Web Component nos permita navegar al Account Home Page.

<template>
    <div>
        <a href={url} onclick={handleClick}>Account Home</a>
    </div>
</template>

Cuando el usuario haga click en el link, se ejecutará el método ‘handleClick’, el cual va a permitir navegar a otra página.

import { LightningElement, wire } from 'lwc';
import { NavigationMixin } from 'lightning/navigation';

export default class NavigationLinkExample extends NavigationMixin(LightningElement) {

    url;

    connectedCallback() {
        this.accountHomePageRef = {
            type: 'standard__objectPage',
            attributes: {
                objectApiName: 'Account',
                actionName: 'home'
            }
        };
        this[NavigationMixin.GenerateUrl](this.accountHomePageRef)
            .then(url => this.url = url);
    }

    handleClick(evt) {
        evt.preventDefault();
        evt.stopPropagation();
        this[NavigationMixin.Navigate](this.accountHomePageRef);
    }
}

Más Información

Para saber más sobre Salesforce, puedes visitar nuestro post sobre ¿Qué son los Gobernor Limits en Salesforce?.

(Visited 492 times, 1 visits today)

Compártelo con tus amigos!

Close