2015-06-14 52 views
0

我在React中有一個嵌套列表。 LI元素有一個onClick事件處理程序。它需要停止傳播,否則所有更高級的事件處理程序也會觸發。反應事件:獲取密鑰並防止事件傳播

我可以有這樣做:

<li key='myKey' onClick={this.onClick}/> 

onClick (event) { 
    event.preventDefault() 
} 

結合我還可以做通關鍵:

<li key='myKey' onClick={this.onClick.bind(this, 'myKey'}/> 

但我怎麼能同時傳遞?

我尋覓長,但沒有找到一種方法來提取該事件​​的關鍵。

+1

當您綁定額外的參數,他們預先計劃的正常參數,所以如'onClick(鍵,事件)'。見['功能#bind'文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)。 –

+0

@BinaryMuse是的!!!你讓我今天一整天都感覺很好!如果你讓這個答案我可以接受它 – Alex

回答

1

嘗試這樣:

<li 
    key={key} 
    onClick={e => { 
    e.preventDefault(); 
    // invoke your onClick callback here 
    this.handleOnClick(key); 
    }} 
/>