javascript - 如何传递反应列表项以作为 onClick 的参数
问题描述
我想知道如何将参数作为参数传递给 onClick 函数反应列表元素
这是我的清单。
const items = this.state.tableData.items.map(
(item, index) => <td key={index} onClick={this.getItem}>{item.name}</td>
);
这是我定义我的功能
constructor(props) {
super(props);
this.state = {
tableData: this.props.items
};
this.getItem = this.getItem.bind(this);
}
这是我的功能。
getItem(item) {
console.log(item)
}
我不想在单击我呈现列表的项目上获取项目详细信息。
我试图让onClick={this.getItem(item)}
我通过这种方式获得项目详细信息,但不是在 onClick。当我打开我的页面时,只记录所有项目详细信息控制台。
我能做些什么 ?
解决方案
有两种常用方法:使用箭头函数,或使用bind
:
箭头功能:
const items = this.state.tableData.items.map(
(item, index) => <td key={index} onClick={e => this.getItem(item, e)}>{item.name}</td>
);
bind
:
const items = this.state.tableData.items.map(
(item, index) => <td key={index} onClick={this.getItem.bind(this, item)}>{item.name}</td>
);
在上述两种情况下,getItem
都会将项目作为其第一个参数,将事件对象作为其第二个参数。
推荐阅读
- java - 使用 DirectoryChooser 保存文件时访问被拒绝
- javascript - Chrome 扩展程序仅适用于“developer.chrome.com”
- neo4j - 您可以在一个查询中创建一个节点并将其链接到多个节点吗?
- ios - 选择选项时,带有 SegmentedRow 的 Xcode Eureka Loop 崩溃
- mongodb - mongodb,复合索引,排序
- c# - 使用通用存储库实体框架核心仅更新一些模型字段
- angular - 每 5 秒订阅一次 observable 并在 Angular 中满足条件时停止
- python - 在python中用逗号替换最后一次但出现的空格
- javascript - Javascript:有什么方法可以检查浏览器缓存中是否存在资产?
- mysql - 用最高记录按子句分组 - MYsql