Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检索React.js元素的Id_Javascript_Reactjs - Fatal编程技术网

Javascript 检索React.js元素的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

我已经为react元素设置了一个静态id,
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')} />