当前位置:首页 > 芯闻号 > 充电吧
[导读]我们经常需要执行耗时较长的代码。为了良好的用户体验,我们在异步处理耗时代码时,采用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();


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

业内消息,台积电在近日举行的 2024 年欧洲技术论坛上再次确认,其德国晶圆厂项目定于今年四季度开始建设,预估 2027 年投产。

关键字: 台积电 晶圆厂

业内消息,日前美国移动、视频和人工智能技术公司InterDigital宣布,由于联想(包括摩托罗拉移动)侵犯其4G和5G设备专利,已获得德国慕尼黑地区法院对于联想的禁令。这也意味着联想支持4G/5G网络的设备(包含手机、...

关键字: 联想 4G 5G

业内消息,特斯拉近日又损失了一位自动驾驶领域的顶尖 AI 工程师 ——Paril Jain,Jain 此前担任特斯拉人工智能团队的“规划、模仿学习和强化学习”部门的技术负责人。他的离职正值特斯拉大规模裁员以及员工士气低迷...

关键字: 自动驾驶 特斯拉 AI工程师

业内消息,近日求职平台脉脉高聘人才智库发布的《2024春招高薪职业和人才洞察》报告显示,抖音、亚⻢逊、大疆霸榜高薪公司,岗位平均薪资超5万元(月薪)。

关键字: 抖音 华为 亚马逊 大疆 商汤科技

业内消息,日前微软官方宣布与量子计算公司Quantinuum的深度合作取得了显著成果。在实验中成功完成了多达14000次无错误的量子计算操作,这一成就不仅刷新了量子计算错误率的纪录,而且将错误率降低了800倍,为量子计算...

关键字: 微软 量子计算 突破

国际货币基金组织(IMF)总裁克里斯塔利娜・格奥尔基耶娃(Kristalina Georgieva)日前表示,AI正在像“海啸”一样冲击着全球劳动力市场。

关键字: IMF AI 劳动力市场 GPT-4o

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

深圳2024年5月15日 /美通社/ -- 近日,国际公认的测试、检验和认证机构SGS(以下简称为"SGS")为雅特力科技颁发AEC-Q100认证证书以及IEC 60730认证证书。获得AEC-Q10...

关键字: AEC-Q100 力科 AT32 测试

广州2024年5月16日 /美通社/ -- 为全面推动昆明市公共领域车辆电动化,在昆明市发展和改革委员会的牵头组织下,昆明配售电有限公司、昆明低碳投资集团有限公司、昆明空投城...

关键字: 电动化 电站 新能源汽车 电网

借助面板,用户在思考和创作时只需轻捏Apple Pencil Pro,即可调用基本工具和命令,避免因繁琐的操作分散注意力 适用于钢笔的动态墨水可根据Apple Pencil Pro的旋转调节墨水流量,让数字化...

关键字: APPLE PENCIL NOTES GO
关闭
关闭