javascript - 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);
}
解决方案
使用箭头函数将从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}
推荐阅读
- python-3.x - Scrapy:发布请求的分页不起作用
- c++ - 使用 npos 将字符串切割成部分
- spring-security - Spring Webflux的WebClient的用户名和密码放在哪里?
- php - 销毁会话而不是在 Laravel 中清除它?
- atom-editor - 如何在 ATOM 编辑器中更改语法检测
- javascript - vuex 是 state.array.push 反应式的吗?
- java - 在 ServiceNow 中使用 REST API 获取用户 sys_id?
- node.js - 如何在nodejs中列出子进程
- javascript - 如何在 HTML 的 for 循环中将不同的 Datepicker 数据分配给不同的行?
- ios - 如何在 Swift4 中访问 JSON 响应中的特定数据