Javascript 检索React.js元素的Id
我已经为react元素设置了一个静态id,Javascript 检索React.js元素的Id,javascript,reactjs,Javascript,Reactjs,我已经为react元素设置了一个静态id,onClicklistener被设置为组件,我将事件对象作为参数传递给listener函数,event.target.id是一个空的字符串,如何获取单击元素的id 如果我没有调用event.persist(),那么我得到的所有值都是空的,为什么会是空的 sendDisplayType=(事件)=>{ event.persist(); console.log(事件); } 我们的使命 生成的事件不是dom事件,而是反应事件,您应该在div标记上设置re
onClick
listener被设置为组件,我将事件对象作为参数传递给listener函数,event.target.id
是一个空的字符串
,如何获取单击元素的id
如果我没有调用event.persist()
,那么我得到的所有值都是空的,为什么会是空的
sendDisplayType=(事件)=>{
event.persist();
console.log(事件);
}
我们的使命
生成的事件不是dom事件
,而是反应事件
,您应该在div
标记上设置ref
,以访问其值,包括id
如果我没有调用event.persist(),我得到的所有值都是null,为什么会这样
调用事件回调后,所有属性都将为空。这是出于性能原因
为了获得一个id,我通常只做一个经典的document.getElementById('id')
但是,如果您真的想在不调用event prop上的函数的情况下处理事件,那么您可以做的是将id作为data
因此:
我强烈推荐上面的代码比较添加箭头功能,如:
<div id="mission" onClick={() => this.sendDisplayType('mission')} />
this.sendDisplayType('mission')}>
由于优化的原因,我通常不使用上面的代码(在prop上调用函数)(因此,如果您有性能问题,请尽可能多地优化)您能给我们展示一个新的解决方案吗?它在
标记上启动。为什么要设置静态id?你为什么不使用参考文献?
sendDisplayType = (event) => {
event.persist();
console.log(event.target.getAttribute('data-id'));
}
<div id="mission" onClick={() => this.sendDisplayType('mission')} />