Javascript 找不到html元素引用宽度和高度

Javascript 找不到html元素引用宽度和高度,javascript,html,reactjs,reference,Javascript,Html,Reactjs,Reference,因此,在处理代码一段时间后,我似乎无法使用react createRef解决方案找到HTML元素的宽度。下面您可以看到构造函数以及我如何初始化引用 构造函数(道具){ 超级(道具); this.elementToTrack=React.createRef(); } 在此之后,我将在我想要跟踪对象大小的对象上创建引用 位置 此时,如果我要控制台ref,它将显示react元素/dom元素,我不完全确定。但从这一点来看,我不确定如何访问它当前的大小属性 我尝试了以下建议,但没有成功: this.

因此,在处理代码一段时间后,我似乎无法使用react createRef解决方案找到HTML元素的宽度。下面您可以看到构造函数以及我如何初始化引用

构造函数(道具){
超级(道具);
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