2 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果我沒(méi)有調(diào)用 event.persist(),我得到的所有值都是 null,為什么會(huì)這樣?
調(diào)用事件回調(diào)后,所有屬性都將被取消。這是出于性能原因。事件池參考
為了得到一個(gè) id,我通常做的就是做一個(gè)經(jīng)典的document.getElementById('id').
但是如果你真的想在不調(diào)用事件道具上的函數(shù)的情況下使用事件方式,你可以做的是將 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'));
}
我強(qiáng)烈推薦上面的代碼比較添加箭頭函數(shù),例如:
<div id="mission" onClick={() => this.sendDisplayType('mission')} />
我通常不使用上面的代碼(在 prop 上調(diào)用函數(shù))因?yàn)閮?yōu)化(所以如果你有性能問(wèn)題,盡可能優(yōu)化)

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
生成的事件不是dom event
,它是react event
,您應(yīng)該ref
在div
標(biāo)簽上設(shè)置以訪問(wèn)其值,包括 id。
添加回答
舉報(bào)