在点按元素上引发@click时,如何将属性发送到回调?

问题描述

我正在尝试在lit-element中的某个组件上触发click事件时,执行回调,并且它可以接收特定值:

this.list.map(item => html`
  <button @click=${this._handleClick}></button>
`)

_handleClick(e){
console.log(item);
}

如何在_handleClick回调范围内获取项目?

解决方法

最简单的方法是为捕获该项目的点击处理程序创建一个闭包:

this.list.map((item) => html`
  <button @click=${() => this._handleItemClick(item)}></button>
`)

_handleItemClick(item) {
  console.log(item);
}