Получить viewport / высота окна в ReactJS

Как получить высоту viewport???

window.innerHeight()

но используя reactjs, я не уверен, как получить эту информацию. Насколько я понимаю, это

ReactDOM.findDomNode()

работает только для созданных компонентов. Однако это не относится к документ или тело элемент, который может дать мне высоту окна.

4 ответов


этот ответ похож на Jabran Saeed, за исключением того, что он также обрабатывает изменение размера окна. Я получил его от!--2-->здесь.

constructor(props) {
  super(props);
  this.state = { width: 0, height: 0 };
  this.updateWindowDimensions = this.updateWindowDimensions.bind(this);
}

componentDidMount() {
  this.updateWindowDimensions();
  window.addEventListener('resize', this.updateWindowDimensions);
}

componentWillUnmount() {
  window.removeEventListener('resize', this.updateWindowDimensions);
}

updateWindowDimensions() {
  this.setState({ width: window.innerWidth, height: window.innerHeight });
}

class AppComponent extends React.Component {

  constructor(props) {
    super(props);
    this.state = {height: props.height};
  }

  componentWillMount(){
    this.setState({height: window.innerHeight + 'px'});
  }

  render() {
    // render your component...
  }
}

установить реквизит

AppComponent.propTypes = {
 height:React.PropTypes.string
};

AppComponent.defaultProps = {
 height:'500px'
};

высота окна просмотра теперь доступна как {this.государство.высота} в шаблоне рендеринга


это то же самое в React, вы можете использовать window.innerHeight чтобы получить высоту текущего окна просмотра.

Как видите,здесь


вы также можете попробовать это:

constructor(props) {
        super(props);
        this.state = {height: props.height, width:props.width};
      }

componentWillMount(){
          console.log("WINDOW : ",window);
          this.setState({height: window.innerHeight + 'px',width:window.innerWidth+'px'});
      }

render() {
        console.log("VIEW : ",this.state);
}