javascript - 从渲染列表中获取点击元素的 ID

标签 javascript reactjs

从列表中单击的元素获取 ID 的最佳方法是什么? 我正在尝试呈现项目列表,然后显示所点击项目的项目详细信息 View 。

例如

render() {
  let list = data.map((obj) => {
               return <div key={obj[id]} id={obj[id]} onClick={this.handleClick}></div>         
             });
  return <div>{list}</div>;
}

如何获取被点击元素的 ID 以便在另一个组件中使用?

最佳答案

您可以直接从click 事件中获取id。无需将变量绑定(bind)到事件处理程序。

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"));
<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>

关于javascript - 从渲染列表中获取点击元素的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44325272/

相关文章:

javascript - 如何在 reactJs 中添加样式以显示/隐藏谷歌地图?

javascript - 我的 Backbone 模型的验证方法在 model.fetch 上调用,但不在 collection.fetch 上调用

javascript - 在knockout js中更改服务器的数据

javascript - Html 5 网格绘制问题

reactjs - 在 useMutation (React-Query) 中发送多个查询的最佳方法是什么

javascript - 基于 Action 的 React/Redux 动画

javascript - 第二个模态不把背景放在第一个上

javascript - 填充一些文本后如何在 Canvas 上设置高度?

javascript - React Native 中条件渲染的映射

javascript - Native Base如何获取List dataArray的ListItem索引?