为什么Dimensions会降低应用程序性能(react-native)

时间:2017-09-13 07:36:14

标签: javascript react-native react-native-android react-native-ios

我想知道设备是纵向还是横向。这样做,我使用每个onLayout()提供的<View/>方法。触发onLayout()后,我会使用Dimensions()获取widthheight,告诉我设备是如何保留的。 我没有在我的应用程序的最顶层<View/>上实现它,但在某个屏幕上。我正在实现它的屏幕完全填充了<View/>我正在使用函数onLayout()Dimensions()

import React, { Component } from "react";
import {
    View,
    Dimensions,
} from "react-native";
import ChildComponent from "./ChildComponent.js"


export default class ParentComponent extends Component {
    constructor(props) {
        super(props);

        this.state({
            portrait: null,
            data: [...]
        })
    }

    _orientation = (event) => {
        const size = Dimensions.get("window");
        size.height > size.width ? this.setState({ landscape: false }) : this.setState({ landscape: true })
    }

    _createChildComponent = () => {
        const portrait = this.state.portrait;
        const childComponentList = this.state.data.map((obj, index) => {
            return <ChildComponent
                key={index}
                data={obj}
                portrait={portrait}/>
        });
        return childComponentList;
    }

    render() {
        const createdChildComponent = this._createChildComponent();
            return (
                <View 
                    onLayout={(event) => {this._orientation(event)}}>
                        {createdChildComponent}
                </View>
            )
        }
}

ChildComponent我通过

访问相关的props
...this.props.portrait...

实施它,让我的应用程序变得非常糟糕。它甚至有时会崩溃。我不知道为什么。有什么想法吗?

0 个答案:

没有答案