如何解决返回循环内项目的名称,而不是遍历它们预反应
使用 preact 和 GUN。下面的代码遍历列出的所有产品(不止一个)并返回名称、价格和描述。
<div class="store-items">
${Object.keys(this.state.items).map(k => {
const i = this.state.items[k];
return html`
<div class="store-item">
--> <p onClick=${this.showName()} class="name">${i.name}</p>
<p class="description">${i.description}</p>
<p class="price">${i.price}</p>
</div>
`
})}
</div>
showName() 是什么,以便我在单击它时记录 i.name。我花了一些时间在这上面,问题是所有的 i.names 都被记录下来,而不仅仅是我点击的那个。另一个问题是 [k] 和 i 在此块之外编写函数时无法识别。
解决方法
可以修改showName函数吗?想要这样的工作:
<div class="store-items">
${Object.keys(this.state.items).map(k => {
const i = this.state.items[k];
return html`
<div class="store-item">
<p onClick=${this.showName(k,i.name)} class="name">${i.name}</p>
<p class="description">${i.description}</p>
<p class="price">${i.price}</p>
</div>
`
})}
</div>
,
如果您只想记录 i.name
,没有别的,以下将起作用:
<p onClick=${() => console.log(i.name)} class="name">${i.name}</p>
如果您想将其提取到专用函数中,
function showName(name) {
console.log(name);
}
<p onClick=${showName(i.name)} class="name">${i.name}</p>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。