Получить видовой экран / высоту окна в ReactJS


Как получить высоту области просмотра???

window.innerHeight()

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

ReactDOM.findDomNode()

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

4 58

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);
}