首页 > 解决方案 > React 获取点击按钮的 ID

问题描述

我有 5 个可点击的链接,每个链接都有唯一的 ID。我正在尝试获取被点击的链接的 ID。我尝试了两种方法,但都没有按我的意愿工作。

内部渲染我有:

this.state.data.map((dynamicData, key) =>
  <a href={"/#/template"} id={dynamicData.id} onClick={() => this.reply_click(this.id)}>{dynamicData.name}</a>
  <a href={"/#/addTeams"}><button type="button" class="btn-lisa">Edit</button></a>

返回未定义的基本方法。我究竟做错了什么?:

reply_click(clicked_id) {
  console.log(clicked_id);
}

标签: javascripthtmlreactjsonclick

解决方案


使用箭头函数将从this外部维护上下文,这不是this您想要的。您可以尝试改用常规函数 ( function () { }),但我不确定是否this会是您想要的。

但是,您绝对可以使用e.target.id来获得您想要的东西:

onClick={e => this.reply_click(e.target.id)}

也就是说,您应该真正避免在事物内部创建函数,因为它会产生重大的性能问题。最好只创建一个函数并将其传入:

// somewhere above
const handleClick = e => this.reply_click(e.target.id);

// attribute
onClick={handleClick}

推荐阅读