在Quick Action中引用lwc組件時,recordId與objectApiName會undefined,但html頁面中用到recordId的地方能正常使用,在connectedCallback中打印recordId卻找不到,因為在Quick Action中獲取recordId,與connectedCallback并非順序執(zhí)行,通常在調(diào)用connectdCallback后填充。
如果想在Quick Action中根據(jù)recordId執(zhí)行一下邏輯
1、可以將此邏輯放在get set中去執(zhí)行,如下:
@api set recordId(value) {
this._recordId = value;
// 根據(jù)記錄id去執(zhí)行的邏輯
}
get recordId() {
return this._recordId;
}
2、可以使用CurrentPageReference獲取當(dāng)前頁面的URL信息,如下:
import {CurrentPageReference} from 'lightning/navigation';
@wire(CurrentPageReference)
getStateParameters(currentPageReference) {
if (currentPageReference) {
this.recordId = currentPageReference.state.recordId;
this.currentUrl = currentPageReference.state.backgroundContext;
this.currentPageObjectName = currentPageReference.attributes.objectApiName
}
}
此外,recordPage中是可以使用recordId與objectApiName的。
附上外網(wǎng)對此問題的解答:https://salesforce.stackexchange.com/questions/344045/recordid-is-undefined-in-lwc-quick-action-component
https://salesforcediaries.com/2024/06/10/get-recordid-in-lwc-quick-action/
浙公網(wǎng)安備 33010602011771號