Salesforce LWC快速操作获取recordId

361 阅读1分钟

在某个对象下,创建一个LWC快速操作,点击该按钮后,在该组件需要拿到当前对象的ID。根据官网文档,@api recordId可以获取到,但在实际测试中,有可能拿不到这个值,或许是异步的原因

1.方法一:在renderedCallback方法中获取

html文件

<template>
    <input type="hidden" value={recordId} />
</template>

js文件

@api recordId;
renderedCallback() {
    console.log('===renderedCallback===');
    console.log(this.recordId);
}

image.png

在渲染过程中,第一次的输出是空的,所以可以在renderedCallback方法中,当获取到recordId后,停止赋值

2。方法二:通过@wire方法获取该对象数据

js文件

import { getRecord } from 'lightning/uiRecordApi';

@wire(getRecord, {recordId: '$recordId', fields: ['Account.Name']})
getAccountId({err, data}) {
    let that = this;
    if (data) {
        console.log(this.recordId);
        console.log(data);  // 或者从返回的数据获取Id
    }
}