App Hostable
Has Record Id
Has SObject Name
Lightning Quick Action
Lightning Quick Action Without Header
LWC Developer Guide
SLDS 1
SLDS 2
force:hasRecordId
Indicates that a component takes a record (SObject) as an attribute.
For Use In
Lightning Experience, Experience Builder Sites, Salesforce Mobile App
Add the force:hasRecordId interface to an Aura component to enable the component to be assigned the ID of the current record. The current record ID is useful if the component is used on a Lightning record page, as an object-specific custom action or action override in Lightning Experience or the Salesforce mobile app, and so on. This interface has no effect except when used within Lightning Experience, the Salesforce mobile app, and Aura-based Experience Builder sites.
This interface is a marker interface. A marker interface is a signal to the component’s container to add the interface’s behavior to the component. You don’t need to implement any specific methods or attributes in your component, you simply add the interface name to the component’s implements attribute.
The force:hasRecordId interface does two things to a component that implements it.
1<aura:attribute name="recordId" type="String" />If your component implements force:hasRecordId, you don’t need to add a recordId attribute to the component yourself. If you do add it, don’t change the access level or type of the attribute or the component will cause a runtime error.
Note
recordId is set to the ID of the record being viewed.The recordId attribute is set only when you place or invoke the component in an explicit record context. For example, when you place the component directly on a record page layout, or invoke it as an object-specific action from a record page or object home. In all other cases, such as when you invoke the component as a global action, or create the component programmatically inside another component, recordId isn’t set, and your component shouldn’t depend on it. These unsupported contexts include a few contexts that might seem like they should have access to the current record. Examples of these other contexts include the following:
force:hasRecordId and force:hasSObjectName are unsupported in these contexts. While the marker interfaces still add the relevant attribute to the component, accessing either attribute generally returns null or undefined.
This example shows the markup required to add the force:hasRecordId interface to an Aura component.
1<aura:component implements="force:lightningQuickAction,force:hasRecordId">
2
3 <!-- ... -->
4
5</aura:component>The component’s controller can access the ID of the current record from the recordId attribute, using component.get("v.recordId"). The recordId attribute is automatically added to the component by the force:hasRecordId interface.
For more information, see the Lightning Aura Components Developer Guide.
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
recordId | The record ID | string |