在某个对象下,创建一个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);
}
在渲染过程中,第一次的输出是空的,所以可以在
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
}
}