Javascript 找不到html元素引用宽度和高度
因此,在处理代码一段时间后,我似乎无法使用react createRef解决方案找到HTML元素的宽度。下面您可以看到构造函数以及我如何初始化引用Javascript 找不到html元素引用宽度和高度,javascript,html,reactjs,reference,Javascript,Html,Reactjs,Reference,因此,在处理代码一段时间后,我似乎无法使用react createRef解决方案找到HTML元素的宽度。下面您可以看到构造函数以及我如何初始化引用 构造函数(道具){ 超级(道具); this.elementToTrack=React.createRef(); } 在此之后,我将在我想要跟踪对象大小的对象上创建引用 位置 此时,如果我要控制台ref,它将显示react元素/dom元素,我不完全确定。但从这一点来看,我不确定如何访问它当前的大小属性 我尝试了以下建议,但没有成功: this.
构造函数(道具){
超级(道具);
this.elementToTrack=React.createRef();
}
在此之后,我将在我想要跟踪对象大小的对象上创建引用
位置
此时,如果我要控制台ref,它将显示react元素/dom元素,我不完全确定。但从这一点来看,我不确定如何访问它当前的大小属性
我尝试了以下建议,但没有成功:
this.elementToTrack.current.offsetWidth;
this.element totrack.current.width;
this.elementToTrack.getBoundingClientRect();
任何帮助都将不胜感激。您可以使用简单javascript的
.offsetWidth
和.offsetHeight
属性,而不是使用refs。将id属性指定给您的th
,如下所示:
<tr>
<th ref={this.elementToTrack} id="sampleID" className="upperHeader">Location</th>
</tr>
var width = document.getElementById('sampleID').offsetWidth;
var height = document.getElementById('sampleID').offsetHeight;
位置
var width=document.getElementById('sampleID').offsetWidth;
var height=document.getElementById('sampleID')。offsetHeight;
这将返回标记的当前宽度和高度。希望您能很好地使用它。应该是
getComputedStyle(this.elementToTrack.current).width
(您需要这样做,以防没有硬编码宽度)。另外,一旦你做了console.log(this.elementToTrack.current)
并得到了元素,这就不再是一个反应问题了。看起来这确实有效,我用它做了一些愚蠢的事情,但现在它在正确的元素上,它可以找到值。在这种情况下,它应该是this.elementToTrack.current.getBoundingClientRect().width