Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.

Add Query Parameters

To add query parameters to the URL, update the PageReference state property. The key-value pairs of the state property are serialized to URL query parameters. The query parameters describe the page and form a more specific URL that the user can save or bookmark.
Keep these behaviors in mind when working with the state property.
  • You can’t directly change the pageReference object. To update the state, create a new pageReference object, and copy the values using Object.assign({}, pageReference).
  • state parameters must be namespaced. For example, a managed package with the namespace abc with a parameter accountId is represented as abc__accountId. The namespace for custom components is c__.Parameters without a namespace are reserved for Salesforce use. This namespace restriction is introduced under a critical update in Winter ’19 and enforced in Summer ’19.
  • Since the key-value pairs of PageReference.state are serialized to URL query parameters, all the values must be strings.
  • Code that consumes values from state must parse the value into its proper format.
  • To delete a value from the state object, define it as undefined.

If your component uses the lightning:hasPageReference or lightning:isUrlAddressable interfaces, always implement a change handler. When the target of a navigation action maps to the same component, the routing container might simply update the pageReference attribute value instead of recreating the component. In this scenario, a change handler ensures that your component reacts correctly.