我对 Aura Component 和 Javascript 还很陌生,所以如果您发现我的措辞不准确,我深表歉意。
在我之前的问题中,我能够知道如何获取当前的 recordID 并将其作为组件控制器中的变量传递给 Flow。我的目标是获取页面的当前 recordID,它可能是 Opportunity Account 和 Lead,甚至可以将其设置为 null,我的流程可以处理所有 ID。
这是我的代码:
零件:
<aura:component implements="flexipage:availableForAllPageTypes,force:hasRecordId,lightning:isUrlAddressable" access="global" >
<aura:handler name="change" value="{!v.pageReference}" action="{!c.reInit}" event="force:refreshView" />
<aura:handler name="change" value="{!v.recordId}" action="{!c.onRecordIdChange}"/>
<lightning:utilityBarAPI aura:id="utilitybar" />
<br/>
Account Id is {!v.recordId} // This updating properly everytime I switch from home screen to recordID its updating real time.
<lightning:formattedText value="{!v.recordId}" aura:id="ThisRecord" />
<lightning:flow aura:id="flowData" onstatuschange="{!c.minimizeUtility}" />
</aura:component>
JS 组件控制器:
({
minimizeUtility : function(component, event, helper) {
if(event.getParam("status") === "FINISHED") {
var utilityAPI = component.find("utilitybar");
utilityAPI.minimizeUtility();
}
},
onRecordIdChange : function(component, event, helper) {
$A.get("e.force:refreshView").fire();
var newRecordId = component.get("v.recordId");
console.log(newRecordId);
// Find the component whose aura:id is "flowData"
var flow = component.find("flowData");
const recordId = component.find("ThisRecord").get("v.value"); const inputs = []; if(recordId) inputs.push({name:"recordId",type:"String",value:recordId});
// In that component, start your flow. Reference the flow's API Name.
flow.startFlow("MyFlowHere",
inputs );
},
reInit : function(component, event, helper) {
alert("hello there!");
},
getInput : function(cmp, event) {
alert("hello there!");
}
})
现在我已经设置了组件,它正在按预期发送当前的记录 ID,但我有一个小问题。您看看我是否在主屏幕上并切换到 v.RecordID 未更新的帐户。即使它设置为在每次 v.RecordID 更改时重新启动流程,但事实并非如此,所以当主屏幕有 v.Record = null 时,即使我跳入帐户页面,它也不会在那里更新记录 ID传递的 ID 不正确。
每次页面更改或 v.RecordID 更改以重新渲染时,我都需要一种刷新或重新启动流功能的方法,const recordId = component.find("ThisRecord").get("v.value");
以便它始终获取更新的 ID。我可以看到每次切换记录时都会更新 aura 组件文本,但获取 ID 的功能不会在那里刷新,因为总是有旧的 ID。
我试图更改我的组织上的会话设置,但这并没有帮助我在这里阅读它, 但这并没有帮助。
如果您知道任何帮助我的方法,请告诉我!谢谢!