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 上調用函數)因為優化(所以如果你有性能問題,盡可能優化)
添加回答
舉報