我不明白为什么两次将事件作为参数传递。
changed={event => this.nameChangedHandler(event, person.id)}
vs
click={() => this.deletePersonHandler(index)}
索引仅传递一次?
<Person click={() => this.deletePersonHandler(index)}
name={person.name}
age={person.age}
key={person.id}
changed={event => this.nameChangedHandler(event, person.id)}
/>
答案 0 :(得分:0)
首先,我建议您根据文档使用onClick(点击):
https://reactjs.org/docs/handling-events.html
onChange(已更改)也是如此:
https://reactjs.org/docs/forms.html
第二,我猜你的Person组件在一个循环中,在该循环中每次迭代都会生成索引。
https://reactjs.org/docs/lists-and-keys.html
请记住,索引只是来自Person组件外部的变量。
另一方面,onChange(以及onClick等其他事件)允许您访问回调函数内部的事件对象(发生该事件时),但前提是您将其作为参数传递。
有关处理事件的更多信息:https://eloquentjavascript.net/15_event.html