当前位置: 首页 > news >正文

react ts实现一个 无限加载组件

页面滑动到底部,直接加载下一页数据

  • InfiniteScroll.tsx
/*** 无限 加载组件*/import { FC, createRef, useEffect, CSSProperties } from 'react'
import LoadingText from '../LoadingText'type PropsType = {loadMore: () => voidhasMore: boolean
}const InfiniteScroll: FC<PropsType> = (props: PropsType) => {const { loadMore, hasMore } = props// const [loading, setLoading] = useState(hasMore)const ref = createRef<HTMLDivElement>()// console.log('InfiniteScroll', hasMore)useEffect(() => {const observer = new IntersectionObserver((entries, observer) => {entries.forEach((entry) => {if (entry.isIntersecting) {// setLoading(false)loadMore()}})})// console.log('ref.current', ref.current)if (ref.current) {observer.observe(ref.current)}}, [])const defaultStyle: CSSProperties = {padding: '0 0 0.6rem 0'}return (<div className="scroll-load-more" ref={ref}>{hasMore ? (<LoadingText defaultStyle={defaultStyle} />) : (<LoadingText><divstyle={{...defaultStyle,textAlign: 'center',fontSize: '0.28rem',color: '#999'}}>--- 我是有底线的 ---</div></LoadingText>)}</div>)
}export default InfiniteScroll
  • 用法
....
<InfiniteScroll loadMore={loadMore} hasMore={hasMore} />async function loadMore() {// 加载下一页数据}// hasMore  是 判断是否还有数据状态

相关文章:

  • 【前端开发】图例宽度根据数值自适应
  • 立哥先进研发-API安全方案
  • 对产品实现折扣服务(对多个异步任务进行流水线操作)
  • 云汇优想:抖音矩阵系统有哪些类型?
  • 集团VPN问题排查及核心交换机(思科C9500)路由编写
  • PDF Expert for mac(专业pdf编辑器)苹果电脑
  • 数据库安全:Hadoop 未授权访问-命令执行漏洞.
  • K8s安装doris踩坑记录
  • git 简单入门
  • 阿里云OSS和腾讯云COS对象存储介绍和简单使用
  • 高并发场景下,如何设计订单库存架构,一共9个关键性问题
  • 了解防抖和节流:提升前端交互体验的实用策略
  • 【JAVA学习笔记】 68 - 网络——TCP编程、UDP编程
  • FFmpeg获取视频关键帧并保存成jpg图像
  • Centos, RockyLinux 常用软件安装汇总
  • 30秒的PHP代码片段(1)数组 - Array
  • CentOS7 安装JDK
  • Django 博客开发教程 16 - 统计文章阅读量
  • express如何解决request entity too large问题
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java多线程(4):使用线程池执行定时任务
  • Mybatis初体验
  • node入门
  • ReactNativeweexDeviceOne对比
  • Redux 中间件分析
  • Xmanager 远程桌面 CentOS 7
  • 从输入URL到页面加载发生了什么
  • 分享一份非常强势的Android面试题
  • - 概述 - 《设计模式(极简c++版)》
  • 一个完整Java Web项目背后的密码
  • 异步
  • 转载:[译] 内容加速黑科技趣谈
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • #预处理和函数的对比以及条件编译
  • (1)(1.11) SiK Radio v2(一)
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (南京观海微电子)——I3C协议介绍
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (五)网络优化与超参数选择--九五小庞
  • (转载)OpenStack Hacker养成指南
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .htaccess配置常用技巧
  • .NET Core 成都线下面基会拉开序幕
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET 解决重复提交问题
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)