当前位置:首页 > 芯闻号 > 充电吧
[导读]我们经常需要执行耗时较长的代码。为了良好的用户体验,我们在异步处理耗时代码时,采用Loading加载动画的形式来等待处理。这里参考了《React native Model组件的使用》。1.在compo

我们经常需要执行耗时较长的代码。为了良好的用户体验,我们在异步处理耗时代码时,采用Loading加载动画的形式来等待处理。

这里参考了《React native Model组件的使用》。


1.在components下新建loading.js文件,如下

/**
 * 调用说明:
 *{this.Loading = r}} hide = {true} /> //放在布局的最后即可
 * 在需要显示的地方调用this.Loading.show();
 * 在需要隐藏的地方调用this.Loading.close();
 */

import React, { Component } from 'react';
import {
    Platform,
    View,
    ActivityIndicator,
    Modal,
} from 'react-native';

import PropTypes from 'prop-types';

export default class Loading extends Component {
    constructor(props) {
        super(props);
        this.state = {
            modalVisible: !this.props.hide,
        }
    }

    close() {
        if (Platform.OS === 'android') {
            setTimeout(()=>{
                this.setState({modalVisible: false});
            },1000)
        }else {
            this.setState({modalVisible: false});
        }
    }

    show() {
        this.setState({modalVisible: true});
    }

    render() {
        if (!this.state.modalVisible) {
            return null
        }
        return ({}}
            >);
    }
}

Loading.PropTypes = {
    hide: PropTypes.bool.isRequired,
};

2.在App.js中引入loading.js

import Loading from './components/loading';

在最外层的View中底部渲染Loading

            {/*{/*......*/}
                {/**/}
                {/**/}{this.Loading = r}} hide = {true} />

定义全局的方法

let self; //将App组件中的this赋给全局的self
global.showLoading = false; //所有子页面均可直接调用global.showLoading()来展示Loading
global.closeLoading = false; //所有子页面均可直接调用global.closeLoading()来关闭Loading

给全局方法赋值,使其可以在任何页面调用

    componentDidMount() {
        self = this;
        global.showLoading = function() {
            self.Loading.show();
        };
        global.closeLoading = function() {
            self.Loading.close();
        };
    }

调用Loading

    _showLoading() {
        global.showLoading();
        setTimeout(()=>{
            global.closeLoading();
        },500)
    }
this._showLoading();


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

负责支持和保护网络生活的云服务提供商阿卡迈技术公司(Akamai),近日在其日益丰富的云产品阵容中又增添了一款基于NVIDIA GPU的媒体优化型产品。这款全新的云服务产品基于NVIDIA RTX 4000 Ada Ge...

关键字: 视频解码器

业内消息,近日高通公司宣布推出针对桌面平台的全新骁龙 X Plus 处理器。

关键字: 高通 骁龙 X Plus 处理器

近日,台积电在圣克拉拉年度技术研讨会上宣布首个“埃级”制程技术:A16。A16 是台积电首次引入背面电源输送网络技术,计划于 2026 年下半年开始量产。同时,台积电也在重新命名工艺节点,标志着「埃级」时代的开始。

关键字: 台积电 A16

4 月 25 日消息,4 月 25 日,国际数据公司(IDC)发布 2024 年第一季度中国手机市场跟踪报告,荣耀以 17.1% 的市场份额拿下第一,华为占 17.0% 位列第二,OPPO、苹果和 vivo 分别位列第三...

关键字: 荣耀 华为

业内消息, 近日华为全新Pura 70系列手机正式开售引发广大 数码爱好者追捧,但是有网友注意到这款手机的“AI修图”功能,竟然可以将照片中的人物衣服消除,并拍成视频发布网络。

关键字: 华为Pura70 华为

据韩媒报道,近日韩国多位军方人士透露,韩国军方正在考虑全面禁止在军事建筑内使用苹果手机,军方担心敏感信息通过录音泄露。

关键字: iPhone 苹果

为了满足日益增长的数据处理需求,铁威马NAS推出了全新的性能巅峰2024年旗舰之作F4-424 Pro,并搭载了最新的操作系统--TOS 6。这款高效办公神器的问世,无疑将为企业和专业人士带来前所未有的便捷与效率。

关键字: 存储 Linux 服务器

继“特斯拉开启万人大裁员”之后,如今又一家车企扛不住了!

关键字: 电动汽车

轻量级AI定制模型助力低成本快速部署 北京2024年4月18日 /美通社/ -- 数据和人工智能(AI)领域的领先者SAS—今日在SAS Innovate大会上首次展示了一款变革性的、旨在帮助企业直面业务挑战的解决方案...

关键字: SAS AI模型 人工智能 INNOVATE

领先的数据和AI平台SAS Viya运用大语言模型的可解释性和可集成性改善现有流程;SAS Data Maker将在保护敏感数据的同时解决关键挑战 北京2024年4月18日...

关键字: SAS VI 生成式AI MAKER
关闭
关闭