如何获得当前窗口高度&更改后的宽度React-Native中的方向?

时间:2017-08-27 13:59:26

标签: reactjs react-native

我使用Dimensions类获取当前窗口宽度&高度。它的正常工作在第一次午餐时屏幕,但它现在正在改变方向。(当改变方向时没有高度 - 宽度

import React from 'react';
import {
    View,
    Text,
    Dimensions
} from 'react-native';

const window = Dimensions.get('window');

let aspectRatio = window.Width / window.Height;

export default class Home extends PureComponent {
    constructor(props) {
        super(props);
    }

    render() {
        return (
            <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }>
                <Text style={{ fontSize: 22}}>Height is {aspectRatio}</Text>
            </View>
        )
    }// end of render
};

1 个答案:

答案 0 :(得分:3)

RN为您提供了一个事件监听器,只要维度对象中的属性发生更改,您就可以使用该监听器。您可以更多地了解here

该事件将输出一个具有屏幕尺寸信息和窗口的对象。然后,只要方向发生,您就可以简单地更新状态。

Dimensions.addEventListener('change', (e) => {
  const { width, height } = e.window;
  this.setState({width, height});
})