移动端Loading的两种方式--RN

2023-11-02

方式一:

1.  先封装一个 Loading 组件

import React from "react";
import { StyleSheet, View, ActivityIndicator } from "react-native";

const Loading = () => (
  <View style={styles.container}>
    <ActivityIndicator />
  </View>
);

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: "center",
    justifyContent: "center",
  },
});

export default Loading;

2.model层判断loading状态:

 

import { getResArray } from "../utils";
import apis from "../services/customerApi";

/**
 * Model
 */
export default {
  namespace: "searchModel",
  state: {
    /* 数据查询中 */
    loading: false,
  },

  effects: {
    /* 获取 */
    * search({ payload }, { call, put}) { 
      // 发起获取请求前loading   
      yield put({ type: "setLoading", payload: true });
      const res = yield call(apis.getCustomerDetails, payload);
      // 请求结束后为取消loading
      yield put({ type: "setLoading", payload: false });
      // const { datas = [] } = res;
      // yield put({ type: "saveCustomerDetails", payload: datas });
    },
  },
  reducers: {
    "setLoading": (state, { payload }) => ({
      ...state,
      loading: payload || false,
    }),
  },
};

3. 使用Loading


import React, { Component } from "react";
import { ScrollView, View } from "react-native";
import connect from "react-redux/es/connect/connect";
import styles from "./styles";
import Loading from "./components/Loading";  // 引入Loading组件

class StoreResult extends Component {

  componentDidMount() {
    const { dispatch } = this.props;
    dispatch({ type: "searchModel/search", payload: keyword });
  }
  
  // 根据请求的状态判断loading,loading为true时显示loading,否则不显示
  render() {
    const { navigation,loading } = this.props;
    return (
      <View style={styles.root}>
        <ScrollView>
          {loading ? <Loading /> : undefined} 
        </ScrollView>
      </View>
    );
  }
}

export default connect(({ searchModel: { loading } }) => ({
  loading,
}))(StoreResult);

方式二:

Toast 轻提示

一种轻量级反馈/提示,可以用来显示不会打断用户操作的内容,适合用于页面转场、数据交互的等场景中。

  • 一次只显示一个 toast。

  • 有 Icon 的 Toast,字数为 4-6 个;没有 Icon 的 Toast,字数不宜超过 14 个。

 

// 使用时引入antd-mobile
import { Toast } from "antd-mobile-rn";


// 放在适当的地方
Toast.loading();



 

Toast.loading(content, duration, onClose, mask)

组件提供了五个静态方法,参数如下:
属性        说明                                        类型                                默认值
content    提示内容                               React.Element or String    无
duration    自动关闭的延时,单位秒    number                               3
onClose    关闭后回调                          Function                             无
mask    是否显示透明蒙层,防止触摸穿透    Boolean                    true

(可选)还提供了全局配置和全局销毁方法:

  • Toast.hide()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动端Loading的两种方式--RN 的相关文章

  • react-native-image-picker 4.0 集成

    github react native image picker 4 x相对于 2 x 3 x已删除 showImagePicker 4 x相对于 2 x 3 x已删除 showImagePicker 4 x相对于 2 x 3 x已删除 s
  • 移动WEB开发之-REM(rem)布局

    目录 移动WEB开发之REM布局 rem基础 rem单位 媒体查询 什么是媒体查询 媒体查询语法规范 1 mediatype 查询类型 2 关键字 3 媒体特性 4 媒体查询书写规则 less 基础 维护css弊端 Less 介绍 Less
  • Paradigm重金3亿刀下注NFT市场

    隔夜大饼 BTC 破位45k 回踩42k一线 昨天 5号 加密市场传来好消息 NFT界的 淘宝 NFT交易市场opensea完成了3亿美元的C轮巨额融资 投后估值133亿美元 这个穿越了一轮周期的项目成立于2017年底的那一波牛市泡沫期 2
  • React Native_React Native组件(ListView&FlatList&SectionList)

    ListView 不分组Demo heros json image 1 jpg title 有关斯维因的最早记载出现在诺克萨斯养老院一名医生的笔记上 据载 斯维因一瘸一拐地走进病房 没有叫喊也没有抱怨 他的右腿被折成两段 骨头破皮而出 他的
  • react native 实现拖拽排序

    先上效果图 意思意思 其实原理很简单 没有想的那么难 大家在改造的时候 请注意 this offset 的值 因为它关系到查找目标box的index 原理 手势释放时 所在的坐标值来推算出目标box的Index 本文代码可读性还需要改造 代
  • flutter 更改CircleProgressIndicator的颜色

    在flutter中 CircleProgressIndicator 默认颜色为 主题设定的颜色 CircleProgressIndicator的参数有3种 value 0 1的浮点数 用来表示进度多少 valueColor 是animati
  • weex实现带有跟手动画的tab栏

    在weex开发的群中看到有人提到这个问题 就想着去实现以下 还不是很完美 只支持一屏的tab栏内容 后续会进行优化 2019 6 20 更新 已支持滚动跟手 可以超出屏幕 2019 6 23 更新 解决子元素包含滚动标签时无法滑动切换的问题
  • 用react 写一个lyout页面

    可以使用 React 创建一个布局页面 首先 你需要在你的项目中安装 React 和 ReactDOM 然后你就可以开始创建你的布局页面了 你可以使用 JSX 语法在你的布局页面中创建 HTML 元素 例如 下面的代码创建了一个带有一个标题
  • React Native_手把手教你做项目(五.下拉刷新RefreshControl&封装自定义Cell)

    接下来我们继续下拉刷新的功能 主要是缓存数据的拼接与后台服务器的配合 把数据最后的id传给后台 后台根据id返回给你新的id之后的数据 因为没有服务器 所以这里的代码仅仅做演示使用 下拉刷新RefreshControl list js im
  • 如何调试VUE代码(VUE调试利器 vue devtools)

    前言 最新想开发一个前后端分离的项目 一直想开始的 拖延了好久终于决定要对它下手了 最早的时候开发的时候使用的还是JSP 那个时候使用的还是EL表达式 后来切换到Spring和SpringMVC之后采用的是HTML JS的all in on
  • js与移动端交互

    1 js 调用移动端ios与android方法 2 移动端ios与android调用js方法 3 demo如下 div div
  • Electron详解(一):基本介绍

    文章目录 一 electron简介 二 发展历史 三 electron优缺点 四 electron和Qt的对比 五 使用electron开发的实际案例 六 electron 的原理 一 electron简介 Electron 官网 http
  • 小白看React Native

    欢迎大家前往云 社区 获取更多腾讯海量技术实践干货哦 作者 MelonTeam 1 What is React Native 众所周知 产品的需求总是想快速的迭代 但是由于应用分发市场的审核机制 主要是iOS审核 使一些快速迭代的需求只能选
  • 纯JS实现国家/省/市三级级联

    偷懒只加入了部分数据 HTML模块 div 国家 div
  • 系统时间显示踩坑记录

    问题 签到前时间每秒变化显示 原始做法是 截取获取的系统时间的后九位 但是红米手机的系统时间最后两位不是秒 而是上下午的英文字母 导致小时截取不到 如图中间位置 希望实现如图左 方法 分别获取系统的时分秒 处理下不是两位的数字 然后拼接起来
  • js如何获取当前时间、前几个月或后几个月时间

    获取当前的时间 格式为 YYYY MM DD function getNowTime var year nowDate getFullYear var month nowDate getMonth 1 lt 10 0 nowDate get
  • Web移动端-touch事件

    一 引入 在一个项目demo中 实现单指触控卡片的向任意方向的拖动效果 网上没有现成的插件 所以只好原生js来写 产品要求需要禁止掉多点触控 这个过程很让人头疼 试了很多方法 都不太实现 后来仔细研究 测试了一下移动端的三个常用事件 二 事
  • reactnative环境搭建-windows

    一 安装依赖 1 Node 以下为两种安装方式 1为基本安装 2为通过管理工具安装 1 按照教程步骤安装指定版本的node Node js 安装配置 注意 Node 的版本应大于等于 14 默认安装在C盘 如果自定义安装了其他盘需要配置环境
  • 禁止ios浏览器页面上下滚动 (橡皮筋效果)弹性滚动 微信的下拉回弹

    发现之前阻止页面滚动的代码e preventDefault代码失效了 于是自己折腾了一番 找到了解决办法 一 前言 浏览器在移动端有一个默认触摸滚动的效果 让我们感触最深的莫过于微信浏览器里面 下拉时自带橡皮筋的效果 然而在开发的时候我们经
  • react-native下载图片到本地相册

    需求 点击右上角下载icon 可以将当前图片下载并保存到本地相册 下载的图片 流程 下载图片的本质其实是 固定需要下载的页面内容和样式 将其放在当前页面不可见区域 点击下载按钮 穿一个ref给native 会自动拉起手机系统下载到本地相册

随机推荐

  • python数字类型分为三类_Python | 数据类型

    Python让Python成为语言研究的利器Xu YangPhoneticSan学习参考 Python for Linguists Natural Language Processing with Python Introducing Py
  • 小白学加速乐的理解

    本来是想学下树美的 感觉太难了 就开始了学习加速乐的进程 网上文章挺多的 到了自己就整不起走 对大佬来说可能就是一些小知识点 无需挂齿 今天我把自己的理解做个小记录 1 2 打开抓包后 打开浏览器开发者工具 在debugger就断着了 大胆
  • 硬件电路点点滴滴“女屌逆袭”2---晶体三极管(1)

    一 晶体管基础知识 晶体管分2种 NPN PNP 晶体管通常封装为TO 92 下面是元件实物图 和 元件符合 NPN 当电压和电流被加到基极上时 NPN晶体管 其工作原理 就像水龙头 给控制开关一点压力 它就放出水来 同样给基极一定电压和电
  • PCL (再探)点云配准精度评价指标——均方根误差

    目录 一 算法原理 二 代码实现 三 代码解析 四 备注 本文由CSDN点云侠原创 原文链接 如果你不是在点云侠的博客中看到该文章 那么此处便是不要脸的爬虫 一 算法原理 见 点云配准精度评价指标 均方根误差 PCL 点云配准精度评价 点到
  • 【技术分享】搭建java项目引入外部依赖教程

    文章目录 引言 如何在linux中编译运行java程序 IDEA中新建一个简单的java工程项目并运行 IDEA中如何引入外部依赖并运行 maven引入log4j jar包 手工引入log4j jar包 如何使用命令行的方式添加外部依赖 如
  • 2021-01-07 库存锁定问题

    前言 今天同事突然问我 要是一个商品我直接下单所有库存 那么是不是要等到订单取消后另一个人才可以下单 我思考了下 确实是需要限制一下 下面是我参考的方案 方案 下单锁库存 支付锁库存 通过淘宝测试 n件以内下单是下单锁库存 n件以上是支付锁
  • 2021年华数杯数学建模A题电动汽车无线充电优化匹配研究求解全过程文档及程序

    2021年华数杯数学建模 A 题 电动汽车无线充电优化匹配研究 原题再现 电动汽车以环境污染小 噪音低 能源利用效率高 维修方便等优势深受消费者青睐 但现有电动汽车的有线充电方式操作复杂 且存在安全隐患 因此采用无线充电方式对电动汽车进行快
  • 算法——最小生成树与最短路径相关算法

    最小生成树算法 普利姆算法代码参考 https blog csdn net tingting256 article details 50471033 具体如何判断是否构成回路 举例说明 克鲁斯卡尔算法代码参考 https blog csdn
  • ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() ora.l

    小白随手记录改bug过程 if G nodes node source print type G nodes node 开始的代码 报错如标题 分析应该是将一个值与多个值或一个列表中的值相比较 匹配的原因 source是一个列表有多个值 遂
  • 华为OD题目: 预订酒店

    预订酒店 预订酒店 题目 放暑假了 小明决定到某旅游景点游玩 他在网上搜索到了各种价位的酒店 长度为 的数组 A 他的心理价位是X元 请都他篇先出k 个最接近x 元的酒店 n gt k gt 0 并由低到高打印酒店的价格 输入 第一行 n
  • 关于R实现多重插补及其可视化

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 进行多重插补 二 多重插补结果可视化 三 结果评估与结果选择 前言 接着对前文数据集进行多重插补来填补缺失值 利用的是mice包中的airquality数
  • VC++ 程序启动即隐藏

    所谓的隐藏是程序启动后不显示主窗体 网上介绍了很多方法 是否达到效果 众说纷纭 这里只介绍一种在项目中实际应用到的切实可行的方法 这里假设主窗体为CMainDialog 1 变量声明 BOOL m bShowWindow 2 给变量赋初始值
  • 爬虫python能做什么-Python除了能做爬虫之外还能做什么?

    原标题 Python除了能做爬虫之外还能做什么 1 web开发python拥有非常完善的与web服务器进行交互的库 以及大量的免费的前端网页模板 更具优势的是 有非常优秀且成熟的Django Web框架 功能一应俱全 请输入图片描述 2 l
  • Linux-交叉编译-linuxptp

    参考文档 https blog csdn net BUPTOctopus article details 86246335 Linux PTP官网介绍 http linuxptp sourceforge net 1 LinuxPTP源码下载
  • 这30个CSS选择器,你必须熟记(上)

    关注前端达人 与你共同进步 CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计 我们能轻而易举的改变颜色 布局 制作出漂亮的影音效果等等 我们只需要改几行代码 不需要借助任何软件 就能轻而易举的实现 感觉就像魔法师一般 几秒钟就能得
  • 多线程并行 Dijkstra与A*算法结合实践

    多线程并行 Dijkstra与A 算法融合 1 Dijkstra总能找到最优解 但是时间消耗大 本文实现了多线程并行的搜索算法 使得路径搜素时间缩短约1 3 2 H作为传入参数可以使得本算法可以切换为A 也可以变为Dijkstra 3 本算
  • 冒泡法对10个数升序排序

    include
  • 智能合约编写之Solidity的编程攻略|FISCO BCOS超话区块链专场(篇5)

    前 言 作为一名搬砖多年的资深码农 刚开始接触Solidity便感觉无从下手 昂贵的计算和存储资源 简陋的语法特性 令人抓狂的debug体验 近乎贫瘠的类库支持 一言不合就插入汇编语句 让人不禁怀疑 这都已经过了9012年了 居然还有这种反
  • 在这么“内卷”的时期,作为转行python两年的人,想给学python的提个醒....

    近日 顶级互联网外企 PayPal 的秋招要求引发了技术界热议 其官方招聘公众号上显示 本次校招仅面向硕士和博士 消息一出 不少程序员都震惊了 现在已经这么卷了吗 只要硕士 其实 不仅是PayPal 许多世界级外企如微软 Intel在招聘时
  • 移动端Loading的两种方式--RN

    方式一 1 先封装一个 Loading 组件 import React from react import StyleSheet View ActivityIndicator from react native const Loading