【发布时间】:2017-08-16 08:09:00
【问题描述】:
嘿,伙计们,基本上我正在使用 react 并且我想通过道具获得父 div 的高度,并使其具有相同高度的孩子。每次调整窗口大小时都会呈现父 div。我尝试使用componentDidMount 和setState 来获取父级的高度,但componentDidMount 仅在我的父级div 第一次渲染时被调用。
我不能在render()function 中使用ReactDOM.findDOMNode(this).clientHeight。
为简化起见,以下是步骤:
- (每次)调整窗口大小
- Div1 被渲染
- 获取 Div1 高度并设置它的状态
- 通过 props 将其传递给 Div2。
有什么想法吗?
这是一段代码:
import React, { Component } from 'react';
import Div2 from './Div2';
class Div1 extends Component {
constructor(props){
super(props);
this.state = {
height: 0
};
}
componentDidMount() {
var height = (ReactDOM.findDOMNode(this).clientHeight);
this.setState({height: height})
}
render() {
return(
<div className='Div1'>
<Div2 height={this.state.height}/>
</div>
);
}
}
export default Div1;
【问题讨论】:
-
你能分享最少的代码以确保每个人都能理解吗?您“尝试使用 componentDidMount 和 setState 来获取父级的高度”:来自 div1 或 div 2?
-
你试过了吗
shouldComponentUpdate()facebook.github.io/react/docs/… -
@DamienLeroux 我在那里放了一些代码,谢谢。我从 div1 使用
-
@DivyanshuMaithani 其实我不知道这个方法,但是通过简短的阅读,我仍然不知道如何进行我想要的更新。
标签: reactjs height components render