首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react原生导航性能

react原生导航性能
EN

Stack Overflow用户
提问于 2018-10-15 23:28:54
回答 2查看 1.5K关注 0票数 1

我对React本机导航V2有一个问题,那就是在我可以查看下一个屏幕之前,有相当长的等待时间。

我读到这似乎是正常的,因为react原生必须渲染新屏幕的所有组件。

所以我想知道是否有某些模式可以获得更好的性能,或者是否有方法隐藏加载时间(通过加载循环或转换)?

EN

回答 2

Stack Overflow用户

发布于 2018-10-16 00:26:59

是的,如果你有很多组件要渲染,通常会发生这种情况。React导航等待组件挂载,然后切换到屏幕。例如,如果一个屏幕需要2秒来渲染所有组件。然后,react导航需要2秒钟才能切换到该屏幕。有一种方法可以缩短切换到下一个屏幕的时间。你可以使用intreractionManager,或者你可以这样做,

首先保持你的状态,让我们把loading设为true。在你的componentDidMount()中,你可以写下这样的代码:

代码语言:javascript
复制
setTimeout(() => this.setState({ loading: false }), 0);

在渲染函数中,在父视图中,执行条件渲染,如

代码语言:javascript
复制
{this.state.loading && <View> 
... your components
</View>}

使用这种方法。该组件将快速挂载,因为componentDidMount()将快速解析,因为该组件没有要呈现的内容。另外,如果您使用的是flatlistlistview,您可以将适当的initialRender设置为3或类似的值,以减少加载时间。所以。最初只渲染单个空视图,然后渲染其他所有内容。

票数 1
EN

Stack Overflow用户

发布于 2018-10-16 21:14:29

感谢@Wainage的建议,我使用了InteractionManager

代码语言:javascript
复制
import PropTypes from "prop-types";
import React from "react";
import {
    InteractionManager,
    Text,
   View,
} from "react-native";

interface State {
   ready: boolean;
   sortedJobs: any[];
}


export default class ProviderJobs extends React.Component<Props, State> {
    constructor(props) {
       super(props);
       this.state = {
          ready: false,
       };
    }

   public componentDidMount() {
       InteractionManager.runAfterInteractions(() => {
           // Do expensive Stuff such as loading
           this.setState({
               ready: true,
               sortedJobs: groupJobs(this.props.jobs), // loading Jobs in my Case
        });

    });
}

   public render() {
       if (!this.state.ready || this.state.sortedJobs.length == 0) {
           return <LoadingCircle/>;
       }


       return (
           <View>
               <DisplayJobs jobs ={this.state.sortedJobs}>
           </View>
       );
   }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52820049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档