0

I'm trying to retrieve recordId and sObjectName from a component put on the utility bar. The point is it always retrieves me 'undefined' in both cases.

<aura:component implements="force:hasRecordId,force:hasSObjectName,flexipage:availableForAllPageTypes"/>

Controller:

doInit : function(component, event, helper) {
    console.log(component.get("v.sObjectName"));
    console.log(component.get("v.recordId"));
}

Is there something wrong with my code? Or it's just that I can't retrieve it from an utility bar component? And if that's so, how can I fix this?

1

force:hasRecordId only works in certain contexts. The documentation states:

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:

  • Invoking the component from a global action (even when you’re on a record page)
  • Invoking the component from header or footer navigation in a community (even if the page shows a record)

While it does not specifically call it out, I would not be surprised to note that a utility bar cannot detect this value.

1
  • In fact, the documentation does mention this: Important 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.* – Jayant Das Nov 13 '18 at 14:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.