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

select滑动分页请求数据

需求背景

Antd 的 select 组件支滑动分页获取后端数据

实现滑动加载数据

定义变量
const allLoadedRef = useRef<boolean>(true); // 是否触底
const [current, setCurrent] = useState<number>(1); // 当前页
const [list, setList] = useState([]); // 列表
定义方法
const getList = async () => {try {setLoading(true);// pageSize 最大 100,让用户感知不到 分页请求数据// 调用接口// 成功// 结构出后端返回给你的 total,赋值totalRef.current = total;// 10 为 pageSizeif (current * 10 >= total) {allLoadedRef.current = false;return;}} catch {message.error('请求超时,请稍后再试!');} finally {setLoading(false);}};

监听 current

 useEffect(() => {getList();}, [current]);

调用

 <SelectonPopupScroll={(e) => {const { target } = e;// clientHeight:客户可见的浏览器显示页面的高度。// scrollTop:滚动条的滑块距离浏览器页面最顶部的距离,即滚动条滑动了多少距离。// scrollHeight:返回元素的完整的高度const { clientHeight, scrollTop, scrollHeight } = target as any;if (clientHeight + parseInt(scrollTop) === scrollHeight) {//表示触底if (allLoadedRef.current) setCurrent((op) => op + 1);}}}onChange={onChange}>//遍历渲染  <Select.Option/></Select>
http://www.lryc.cn/news/304263.html

相关文章:

  • 【Go channel如何控制goroutine并发执行顺序?】
  • 逆向分析Cobalt Strike安装后门
  • 【嵌入式学习】QT-Day3-Qt基础
  • 【杭州游戏业:创业热土,政策先行】
  • Python-pdfplumber读取PDF内容
  • js设计模式汇总
  • 【Java面试】MongoDB
  • 在苹果电脑MAC上安装Windows10(双系统安装的详细图文步骤教程)
  • 18V/5A桥式驱动芯片-SS6285L兼容替代RZ7889
  • C++ Primer 笔记(总结,摘要,概括)——第3章 字符串、向量和数组
  • Sora:OpenAI引领AI视频新时代
  • [FPGA开发工具使用总结]VIVADO在线调试(1)-信号抓取工具的使用
  • Linux ip route命令
  • WordPress有没有必要选择付费主题
  • 软考-中级-系统集成2023年综合知识(一)
  • Flutter NestedScrollView 内嵌视图滚动行为一致
  • 展示用HTML编写的个人简历信息
  • PostgreSQL 实体化视图的使用
  • 【MySQL】数据库索引详解 | 聚簇索引 | 最左匹配原则 | 索引的优缺点
  • HarmonyOS 自定义进度条 Stage模型
  • Flink双流(join)
  • 使用Nginx或者Fiddler快速代理调试
  • MySQL高级特性篇(3)-全文检索的实现与优化
  • MySQL加锁策略详解
  • 会声会影2024新功能及剪辑视频步骤教程
  • Rust Vs Go:从头构建一个web服务
  • 几个常见的C/C++语言冷知识
  • 低代码开发:学校低成本数字化转型的新引擎
  • 【es6】解决箭头函数所有的问题,箭头函数的 this 指针,使用 new 操作符
  • 2-1SDN(软件定义网络)环境测试实验(无默认控制器)-静态流表