我有一個<ul>
組件包裝了一些<li>
組件。我想避免爲每個li
添加onClick
處理程序,而是在ul
上使用單個處理程序並捕獲冒泡事件。React Event Bubbling:查找目標組件
從冒泡事件確定/分配點擊的組件的正確方法是什麼?
class ListItemComponent extends React.Component {
public render() {
return (
<li>Foo</li>
)
}
}
class ListComponent extends React.Component {
private handleClick(event) {
const target = event.target;
// Determine clicked component, or index etc … ?
}
public render() {
const items = this.props.items.map((x, i) => {
<ListItemComponent active=「false」 key={i} />
})
return (
<ul onClick={this.handleClick} />
{ items }
</ul>
)
}
}
你不可錯過'event'各地反應。直接將'event.target'傳遞給你的handleClick函數。 – jmargolisvt
我不確定你提出的解決方案。你能提供一個例子嗎?在我給出的例子中,我當然可以訪問該事件。 – duncanhall
我只是說當你將事件傳遞給你時,真的會得到SyntheticEvent,這更難以處理。 – jmargolisvt