我需要根据父元素设置组件尺寸。是否可以在渲染之前通过ref从virtualDOM获取父级的宽度和高度?
家长
export default class App extends React.Component {
render() {
return (
<div>
<div className={'avocado-container'} ref={(container) => { this.container = container; }}>
<Resizer parent={this} scrollAxis={'y'}>
</Resizer>
</div>
</div>
);
}
}
&#13;
我需要在子项的构造函数中获取维度。
是否可以使用this.refs.container.offsetWidth
?
答案 0 :(得分:0)
否。布局尺寸由浏览器计算,而不是虚拟DOM。手动设置尺寸,或使用CSS使您的子组件填充宽度和高度。您还可以在componentDidMount
中从渲染的组件中读取宽度和高度,并在那里调用setState
,这不是理想的,会导致第二次渲染,但有时需要完成。