在您的 HTML 模板中使用此代码 - 记住不要在根“模板”元素中放置任何属性,使用另一个 div 作为 for:each 指令的持有者。您必须使用 key 指令为每个项目分配唯一 ID。当列表更改时,框架使用该键仅重新呈现已更改的项目。模板中的键用于性能优化,在运行时不会反映在 DOM 中。
<template>
<div for:each={savedCampaignList} for:item="savedCampaignListvar" key={savedCampaignListvar.Id}>
<a name={savedCampaignListvar.Id} >View</a>
|
<a if:true={savedCampaignListvar.shouldShow} name={savedCampaignListvar.Id} >Delete</a>
</div>
</template>
我们可以使用 connectedCallback 函数——它内置在将元素插入文档时调用的 LWC 函数。在那里我们可以设置一些条件并向数组内的对象添加“shouldShow”(当然,如果您想要的话,您可以调用;))属性。基于此属性,我们将显示或不显示删除按钮。您的 JS 应如下所示:
import { LightningElement, track } from 'lwc';
export default class App extends LightningElement {
@track savedCampaignList = [
{Id: "1", status: 'Saved'},
{Id: "2", status: 'Not Saved'}
]
connectedCallback() {
this.savedCampaignList.forEach((el)=> {
el.shouldShow = el.status === 'Saved';
})
}
}