React.js - 在单击事件上查找映射元素的 ID

Unl*_*LAD 2 javascript arrays mapping reactjs

我正在尝试查找当前元素的 id,以便当我执行 操作时onClick,我可以仅操作我单击的映射元素。

测试点击

const testClick = (event) => {
    console.log(event.person.id)
}
Run Code Online (Sandbox Code Playgroud)

数据:

{
  "ExampleData": [
    {
      "id": 0,
      "name": "Joe Doe",
      "email": "joedoe@gmail.com"
    },
    {
      "id": 1,
      "name": "John Smith",
      "email": "johnsmith@example.com"
    },
]
Run Code Online (Sandbox Code Playgroud)

}

映射:

const data = exampleData.ExampleData

 {(data|| {}).map((person, i) => {
                return (
                    <DataContainer testClick={testClick} person={person}/>
                )
            })}
Run Code Online (Sandbox Code Playgroud)

它映射 DataContainer 子级的次数与对象数组中的项数一样多。

但现在,我试图有一个 onClick 来检测我按下的特定映射项目。正如您所看到的,我正在将testClick函数传递给 DataContainer,并在其中尝试控制台记录我所按下的用户的当前 ID。

const testClick = (e) => {
    console.log(e.id)
}
Run Code Online (Sandbox Code Playgroud)

例如:

onClick - if ID === currentID --- do something 
Run Code Online (Sandbox Code Playgroud)

Bou*_*him 5

添加一个箭头函数作为单击事件的处理程序并将 id 作为参数传递:

 testClick={()=>testClick(person.id)}
Run Code Online (Sandbox Code Playgroud)

如果您还需要您可以执行的活动:

 testClick={(event)=>testClick(event,person.id)}
Run Code Online (Sandbox Code Playgroud)

 const testClick = (event,id) => {
   console.log(event, id)
}
Run Code Online (Sandbox Code Playgroud)