簡體   English   中英

使用React.js獲取數據屬性

[英]Getting data attributes with React.js

為什么我必須在每個html child attribute放入data-*所以我不會通過單擊parentundefined

<li data-item="item-1">
  <img src="../img" alt="img" />
  <p>Some text</p>
</li>

通過這個例子,每當我點擊<li>的邊界附近時我都會得到item-1但是每當我點擊imgtext/paragraph我都會得到undefined 但是當我在<li> childs上設置data-item ,我獲得了正常的data值。 什么?

PS。 我獲得data-*的方式是data-*

handleClick(event){
  let data = event.target.dataset['item']
}
...
<li data-item="item-1" onClick={this.handleClick.bind(this)}>...</li>

我做錯了什么,我必須在每個<li>data-*所以我不會on<Event>上的整個<li>on<Event>得到未定義的?

僅供參考,這個問題與React無關。 這是瀏覽器中DOM事件的工作方式。 查看這篇quirksmode.org文章 ,了解有關事件傳播如何工作的更多信息。

event.target將始終引用觸發事件的元素。 因此,如果單擊<p>元素, event.target將引用該元素。 由於<p>沒有data-*屬性,因此undefined

要始終獲取綁定處理程序的元素(即示例中的<li>元素),請使用event.currentTarget

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM