2017-08-24 100 views
0

在componentDidMount中,我只得到一个元素的offsetWidth为零,但元素总共具有宽度。获取反应元素的元素大小DidMount

如何在渲染后获取元素宽度?

componentDidMount(){ 
    console.log(this.$slide.offsetWidth); 
    } 

render() { 
return <div 
      className='Reader__ImageWrapper' 
      ref={(slide) => { this.$slide = slide; }} 
     > 
      <img src={`/Images/Reader/Pages/Page 001.jpg`} className="Reader__Image"/> 
      <img src={`/Images/Reader/Pages/Page 002.jpg`} className="Reader__Image"/> 
     </div> 
} 
+0

Юрий,кажетсявэтовремяразмерыкомпонентыдействительноравнынулю,яобработалтотжеколпокликуужепослеотрисовки,итамвсёнорм。适用于所有类型的产品 –

回答

-1

在反应精铸件componentDidMount尝试下面的代码

JavaScript的方式...

document.getElementById("mydiv").offsetWidth; 

jQuery的方法...

$('#mydiv').width(); 
+0

完全抗反应模式 –

0

您需要首先在获得dom然后将其偏置宽度:

ReactDOM.findDOMNode(this.$slide).offsetWidth;