【发布时间】:2019-01-12 03:12:28
【问题描述】:
我正在使用带有 React.js 的 html 画布。我想将我的画布高度设置为等于正文的高度,以便人们可以在整个页面上绘制。
import IMG from "../../assets/img/contact-img.jpg";
constructor(props){
super(props);
this.state ={
width:0,
height:0
}
}
componentDidMount(){
let newState = {
width:this.myRef.current.getBoundingClientRect().width,
height:this.myRef.current.getBoundingClientRect().height
};
this.setState(newState);
}
render(){
<div>
<DrawableCanvas width={this.state.width} height={this.state.height}/>
<img src={IMG} />
</div>
}
我的想法是先画一个画布(width,height=0)。整个布局组件渲染完成后,我们可以获取布局的高度并更新画布。
问题是当有子标签时我无法正确获取高度。 但我成功地在 Chrome 控制台中获得了高度。似乎 React 在渲染组件时,标签被忽略了。
【问题讨论】:
-
您是在寻找设备高度,还是画布父元素的高度?您在问题中都提到了两者。
-
@Douglas 您能告诉我们您如何处理
DrawableCanvas组件中的维度属性吗?
标签: javascript html height getboundingclientrect