亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢索 React.js 元素的 ID

檢索 React.js 元素的 ID

桃花長相依 2021-10-21 15:13:22
我已經設置了一個靜態 id 來響應元素,并且將onClick偵聽器設置為組件,我將事件對象作為參數傳遞給偵聽器函數并且event.target.id是空的string,如何獲取被點擊元素的 id?如果我沒有調用event.persist(),我的所有值都為空,為什么會這樣?sendDisplayType = (event) => {  event.persist();  console.log(event);}<div id="mission" onClick={this.sendDisplayType} className="col l8 m6 left-align nopaddingleft white-space greentext">    <h5> <b>Our Mission</b></h5></div>
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

如果我沒有調用 event.persist(),我得到的所有值都是 null,為什么會這樣?


調用事件回調后,所有屬性都將被取消。這是出于性能原因。事件池參考


為了得到一個 id,我通常做的就是做一個經典的document.getElementById('id').


但是如果你真的想在不調用事件道具上的函數的情況下使用事件方式,你可以做的是將 id 傳遞為 data


所以:


<div id="mission" data-id="mission" onClick={this.sendDisplayType} className="col l8 m6 left-align nopaddingleft white-space greentext">

    <h5> <b>Our Mission</b></h5>

</div>

然后得到它:


sendDisplayType = (event) => {

  event.persist();

  console.log(event.target.getAttribute('data-id'));

}

我強烈推薦上面的代碼比較添加箭頭函數,例如:


  <div id="mission" onClick={() => this.sendDisplayType('mission')} />

我通常不使用上面的代碼(在 prop 上調用函數)因為優化(所以如果你有性能問題,盡可能優化)


查看完整回答
反對 回復 2021-10-21
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

生成的事件不是dom event,它是react event,您應該refdiv標簽上設置以訪問其值,包括 id。


查看完整回答
反對 回復 2021-10-21
  • 2 回答
  • 0 關注
  • 247 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號