javascript - 创建新记录后重置 Lightning-record-form
问题描述
我是 LWC 的新手。我想知道保存记录后如何重置闪电记录表格。
文件:contactCreator.html
<template>
<lightning-card title="Contact Creator">
<div class="slds-m-around_medium">
<lightning-record-form object-api-name={objectApiName} fields={fields} oncancel={handleReset} onsuccess={handleSuccess}>
</lightning-record-form>
</div>
</lightning-card>
</template>
文件:contactCreator.js
import FIRST_NAME_FIELD from '@salesforce/schema/Contact.FirstName';
import LAST_NAME_FIELD from '@salesforce/schema/Contact.LastName';
import EMAIL from '@salesforce/schema/Contact.Email';
export default class ContactCreator extends LightningElement {
objectApiName = CONTACT_OBJECT;
fields = [FIRST_NAME_FIELD,LAST_NAME_FIELD,EMAIL];
handleSuccess(event){
const toastEvent = new ShowToastEvent({
title:"Contact Created - Success",
message : "Record ID: "+ event.detail.id,
variant:"success"
});
this.dispatchEvent(toastEvent);
}
}
保存后我想要这样的组件
忽略图像中的新按钮
我保存后得到这个。
解决方案
在记录创建中,成功设置属性recordId
以引用新对象,这就是您看到数据的原因。
为了获得新的空白表格,您必须覆盖该值。
只需在方法末尾添加这两行handleSuccess
:
const editForm = this.template.querySelector('lightning-record-form');
editForm.recordId = null;
它应该如下所示:
handleSuccess(event) {
const toastEvent = new ShowToastEvent({
title: "Contact created",
message: "Record ID: " + event.detail.id,
variant: "success"
});
this.dispatchEvent(toastEvent);
const editForm = this.template.querySelector('lightning-record-form');
editForm.recordId = null;
}
推荐阅读
- reactjs - 在 React 上显示类别名称
- javascript - 将元素移动到数组中的第一个位置
- php - 如果我的数据库是空的,那么如何自动隐藏我的删除按钮
- angular - 如何在 Angular 5 中排列组件/页面?
- javascript - 按钮需要双击显示图像?
- r - R for loop very slow due to repetitively filtering large dataframe
- json - 从 Node js 中的 url 中提取信息并使用它
- c# - Casting the sender of an event to find the value in a Dictionary that fired the event
- c - 使用 gcc 将汇编代码与 C 代码链接的正确方法是什么
- java - 我们有什么方法可以减少死锁的可能性?