force:hasRecordId 界面不提供来自“新建”按钮覆盖的 recordId

force:hasRecordId interface doesn't provide recordId from “new” button override

我有两个自定义对象(我们称它们为 House 和 Resident)。

房屋记录页面有一个包含所有相关住户的相关列表。

我还有两个闪电组件(ResidentDetails 和 NewResident)。

NewResident 从两个地方调用,在不同记录页面的 ResidentDetails 中。以及 Resident 的“新建”按钮覆盖。

NewResident 实现 force:hasRecordId 和 lightning:actionOverride(见下文)。

但是,由于它是在不同的上下文中启动的(新常驻页面,像这样:blah.lightning.force.com/lightning/o/Resident__c/new)。

我的问题是,recordId 属性不包含房屋记录 ID。

component.get("v.recordId")doInit 中得到 undefined

相关代码示例:

NewResident.cmp

<aura:component implements="lightning:actionOverride,force:hasRecordId" controller="ResidentDetailsController" access="global">
    <!--Handlers-->
    <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
    
    <p>{!v.recordId}</p> <!--empty-->
    
    <!--A bunch of other irrelevant stuff-->
</aura:component>

NewResidentController.js

({
    doInit : function(component, event, helper) {
        console.log(component.get("v.recordId")); //logs `undefined`
    },
})

如果我从 ResidentDetails 组件调用该组件,这会起作用,但在覆盖新常驻按钮时不起作用。

我的问题是:有没有办法从以前的上下文中检索 recordId?

感谢任何帮助!

Salesforce 似乎还无法做到这一点。与我交谈过的 Salesforce 支持工程师并不知道任何近期实施该功能的计划。

在我的具体场景中,我将不得不在 aura 组件中重新实现“相关列表”功能,然后调用“新”组件。