手机端效果实现下拉刷新上拉加载更多数据---自定义数据篇

2023-11-12

代码如下

需安装react-pullload插件
yarn add react-pullload

import React from 'react'
import "../../../node_modules/react-pullload/dist/ReactPullLoad.css";
import ReactPullLoad,{STATS} from 'react-pullload'
const loadMany= 3;//设置可以加载多少次

const cData = [
	"https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0820%2F5b995c63j00qy48rp001ic000jg00elm.jpg&thumbnail=650x2147483647&quality=80&type=jpg",
  "https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0820%2F5b995c63j00qy48rp001ic000jg00elm.jpg&thumbnail=650x2147483647&quality=80&type=jpg",
  "https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0820%2F5b995c63j00qy48rp001ic000jg00elm.jpg&thumbnail=650x2147483647&quality=80&type=jpg"
]

class App extends React.Component{

	constructor(){
		super();
		this.state ={
			hasMore: true,
			data: cData,
			action: STATS.init,
			index: loadMany 
    }
	}

	handleAction = (action) => {
		console.info(action, this.state.action,action === this.state.action);
		if(action === this.state.action ||action === STATS.refreshing && this.state.action === STATS.loading ||action === STATS.loading && this.state.action === STATS.refreshing){
			return false
		}

		if(action === STATS.refreshing){//刷新
			setTimeout(()=>{
				this.setState({
					data: cData,
					hasMore: true,
					action: STATS.refreshed,
					index: loadMany
				});
			}, 3000)
		} else if(action === STATS.loading){//加载更多
			this.setState({
				hasMore: true
			});
			setTimeout(()=>{
				if(this.state.index === 0){
					this.setState({
						action: STATS.reset,
						hasMore: false
					});
				} else{
					this.setState({
						data: [...this.state.data, ...cData],
						action: STATS.reset,
						index: this.state.index - 1
					});
				}
			}, 2000)
		}
		this.setState({
			action: action
		})
	}
	getScrollTop = ()=>{
		if(this.refs.reactpullload){
			console.info(this.refs.reactpullload.getScrollTop());
		}
	}
	setScrollTop = ()=>{
		if(this.refs.reactpullload){
			console.info(this.refs.reactpullload.setScrollTop(100));
		}
	}
	componentDidMount(){}
	render(){
		const {
			data,
			hasMore
		} = this.state

		return (
			<div style={{background:'white',margin:0,padding:0}}>
				<ReactPullLoad
					downEnough={150}
					ref="reactpullload"
					className="block"
					isBlockContainer={true}
					action={this.state.action}
					handleAction={this.handleAction}
					hasMore={hasMore}
					style={{paddingTop: 0}}
					distanceBottom={1000}>
					<ul className="test-ul">
						{
							data.map( (item, index )=>{
								return <li key={index}><img src={item} alt=""/></li>
							})
						}
					</ul>
				</ReactPullLoad>
			</div>
		)
	}
}
export default App
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手机端效果实现下拉刷新上拉加载更多数据---自定义数据篇 的相关文章

  • 【C语言】整型数据在内存中的存储(详解)

    数据存储 文章目录 数据类型 布尔类型 无符号数据的打印 不同数据占用的字节 整型在内存中的存储 整型家族 原反补 三兄弟 二进制要怎么写出来呢 什么是符号位 大小端问题 判断当前编译器是大端还是小端 为什么整型在内存中存放的是补码呢 结语

随机推荐

  • 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(六)

    整理不易 希望对各位学习软件测试能带来帮助 软件测试知识持续更新 第五章 自动化测试用例设计 第一节 手工测试用例与自动化测试用例 手工测试用例与自动化测试用例对比 用例选型注意事项 第二节 测试类型 测试静态内容 测试链接 功能测试 测试
  • Relatives 【POJ - 2407】【欧拉筛、预处理】

    Given n a positive integer how many positive integers less than n are relatively prime to n Two integers a and b are rel
  • vs中报错error C4996: 'wcstombs': This function or variable may be unsafe

    遇到这样的情况就是缺少宏 所以需要我们将需要的宏进行加上就可以了 在以下的位置 项目 gt 属性 gt 配置属性 gt C C gt 预处理器 gt 预处理器定义 增加 CRT SECURE NO DEPRECATE 完成
  • QTreeWidget存放自定义数据

    QTreeWidget 双击可编辑的设置 connect ui treeWidget RedLamp SIGNAL itemClicked QTreeWidgetItem int this SLOT Slot TreeRedLampIncr
  • C++中类的静态变量在哪初始化

    C 中类的静态变量在哪初始化 static修饰的成员变量存在哪 static成员变量 不能在头文件中初始化 3 static成员必须在类外初始化 并且 不能在头文件中初始化 否则 在链接时可能会出现重定义的问题 C 成员初始化 class
  • C++ 强制转换运算符

    强制转换运算符是一种特殊的运算符 它把一种数据类型转换为另一种数据类型 强制转换运算符是一元运算符 它的优先级与其他一元运算符相同 大多数的 C 编译器都支持大部分通用的强制转换运算符 type expression 其中 type 是转换
  • 【Unity Shader】浅析Unity shader中RenderType的作用及_CameraDepthNormalsTexture

    初学Unity ShaderLab的时候 一定有接触过Unity Shader中的Tags标签块 比如 span span LightMode Vertex Queue Transparent IgnoreProjector True Re
  • stm32第二课

    stm编程写状态机 使用MENU 菜单 设置多个变量 c文件是驱动文件 h文件是库文件豆腐线规范 并做读书笔记 AHB总线规范是AMBA总线规范的一部分 AMBA总线规范是ARM公司提出的总线规范 被大多数SoC设计采用 它规定了AHB A
  • 函数的引用返回

    引用是给变量取一个别名 所以引用传递会直接进行变量本身的传递 它的最大好处是可以把别处对变量的改变保留下来 第二好处是它提高了性能 如果函数的返回值是一个引用 那么 如上文所说 它会节约一组构造 赋值和析构过程 但是 函数返回引用往往会带来
  • ZooKeeper的学习与应用

    转载 http blog csdn net rengq126 article details 7393227 最近大概学习了一下ZooKeeper 本身并没有深入 LGG尝试着在虚拟机里面搭了平台 看了看一些教材 从网上到处看别人的博文并引
  • Amdahl's law and Gustafson's law

    在高并发程序设计中有两个非常重要的定律 Amdahl 阿姆达尔定律 Gustafson定律 古斯塔夫森定律 这两个定律从不同的角度诠释了加速比与系统串行化程度 cpu核心数之间的关系 它们是我们在做高并发程序设计时的理论依据 加速比 加速比
  • python学习之定制发送带附件的电子邮件

    Python SMTP发送邮件 SMTP Simple Mail Transfer Protocol 即简单邮件传输协议 它是一组用于由源地址到目的地址传送邮件的规则 由它来控制信件的中转方式 python的smtplib提供了一种很方便的
  • 【C++】STL-常用算法-常用查找算法

    0 前言 1 find include
  • @ResponseBody 和 @RequestBody以及@PathVariable的作用

    一 ResponseBody ResponseBody是作用在方法上的 ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中 一般在异步获取数据时使用 也就是AJAX 在使用 RequestMap
  • form表单及ajax使用form-serialize提交

    1 表单定义 在网页中 表单主要负责数据的采集功能 表单由 表单标签 表单域 表单按钮 组成 html的form标签就是表单标签 是一个容器 用来将页面中指定的区域划定为表单区域 表单域 提供了采集用户信息的渠道 input textare
  • 计算机毕业设计-基于SSM的学生成绩管理系统

    项目摘要 系统开发技术 Java语言 Java主要采用CORBA技术和安全模型 可以在互联网应用的数据保护 它还提供了对EJB Enterprise JavaBeans 的全面支持 java servlet API Java java se
  • 微信小程序自定义导航栏

    微信小程序自定义导航栏 业务需求 点击小房子进行跳转指定的页面 更改小房子的样式 或者是自定义导航栏 首先我们需要找到pages json这个文件 如果是原生的微信小程序文件名字是 app json其实就是找到配置路由的文件 在代码里面添加
  • 服务器拖两个屏幕win10系统,win10系统设置两个显示器的还原方案

    win10系统使用久了 好多网友反馈说关于对win10系统设置两个显示器设置的方法 在使用win10系统的过程中经常不知道如何去对win10系统设置两个显示器进行设置 有什么好的办法去设置win10系统设置两个显示器呢 在这里小编教你只需要
  • Jackson 双引号的问题

    当用执行下面的代码的时候 String json name chenhailong Map
  • 手机端效果实现下拉刷新上拉加载更多数据---自定义数据篇

    代码如下 需安装react pullload插件 yarn add react pullload import React from react import node modules react pullload dist ReactPu