从列表中点击的元素获取ID的最佳方法是什么? 我正在尝试渲染项目列表,然后显示所单击项目的项目详细信息视图。
e.g
render() {
let list = data.map((obj) => {
return <div key={obj[id]} id={obj[id]} onClick={this.handleClick}></div>
});
return <div>{list}</div>;
}
如何获取被点击元素的id以便在另一个组件中使用?
答案 0 :(得分:3)
为每个元素传递onClick
方法中的id:
render() {
let list = data.map((obj) => {
return <div key={obj.id} id={obj.id} onClick={() => this.handleClick(obj.id)}></div>
}
return <div>{list}</div>;
}
handleClick(id){
console.log(id);
}
答案 1 :(得分:3)
您可以直接从id
活动中获取click
。无需将变量绑定到事件处理程序。
render() {
let list = data.map((obj) => {
return <div key={obj[id]} id={obj[id]} onClick={this.handleClick}></div>
}
return <div>{list}</div>;
}
handleClick(e){
console.log(e.target.id);
}
略微修改的工作示例:
class MyApp extends React.Component {
handleClick(e){
console.log(e.target.id);
}
render() {
let data = [0,1,2,3,4];
let list = data.map((obj, id) => {
return <div key={obj[id]} id={"id-" + id} onClick={this.handleClick}>{obj}</div>
});
return <div>{list}</div>
}
}
ReactDOM.render(<MyApp />, document.getElementById("myApp"));
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="myApp"></div>
&#13;