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

antdesignpro实现滚动加载分页数据

原理解析:每滚动一次相当于翻页,请求后端时给的页码参数要想办法加1,后端才能根据页码给出相应数据

注意后端收到页码参数之后要准确计算出每页的首行数据,关键逻辑代码:

# 根据前端传的页码,进行计算下一页的起始行号
page = (int(params['page'])-1)*10+1
sql = f"SELECT * FROM dong_c_di_comment limit 10 offset {page}"
print(sql)

前端实现部分:

const [loading, setLoading] = useState(false);
const [data, setData] = useState([]);
// 定义传给后端的页码钩子
const [page, setPage] = useState(1);const loadMoreData = async () => {if (loading) {return;}setLoading(true);const params = {page:page}get_cars(params).then(res => {setData([...data, ...res.data]);setPage(page + 1);setLoading(false);}).catch(() => {setLoading(false);});
};useEffect(() => {loadMoreData();
}, []);
return(<divid="scrollableDiv"style={{width:"350px",height: "900px",overflow: 'auto',padding: '0 16px',border: '1px solid rgba(140, 140, 140, 0.35)',}}><InfiniteScrolldataLength={data.length}next={loadMoreData}hasMore={data.length < 50}loader={<Skeleton avatar paragraph={{ rows: 1 }} active />}endMessage={<Divider plain>加载完毕, 没有更多数据了哦 🤐</Divider>}scrollableTarget="scrollableDiv"><ListdataSource={data}renderItem={(item) => {// console.log("item1111111",item)return (<List.Item key={item.commenter_name}><List.Item.Metaavatar={<Avatar src={item.avatar_url} />}title={<a href="https://ant.design">{item.title}</a>}description={item.content}/></List.Item>)}}/></InfiniteScroll></div>
)
http://www.lryc.cn/news/265644.html

相关文章:

  • 步兵 cocos2dx 加密和混淆
  • 【算法设计与分析】——动态规划算法
  • WPF组合控件TreeView+DataGrid之DataGrid封装
  • PIL/Pillow
  • ARM 汇编入门
  • SQL进阶:多表查询
  • 多层负载均衡实现
  • Redis取最近10条记录
  • Mybatis之增删改查
  • Go 代码检查工具 golangci-lint
  • SwiftUI 趣谈之:绝不可能(Never)的 View!
  • etcd是什么
  • 应用全局的UI状态存储AppStorage
  • MySQL数据库 触发器
  • C语言学习之给定任意的字符串,清除字符串中的空格
  • 由实验数据进行函数拟合的python实现
  • <JavaEE> 基于 UDP 的 Socket 通信模型
  • Golang 链表的基础知识
  • webpack 常见面试题
  • three.js实战模拟VR全景视图
  • 聊聊Spring Boot配置文件:优先级顺序、bootstrap.yml与application.yml区别详解
  • Milvus向量数据库基础用法及注意细节
  • 虚拟机多开怎么设置不同IP?虚拟机设置独立IP的技巧
  • 使用Docker-镜像命令
  • 4.3 C++对象模型和this指针
  • 计算机网络——计算机网络的概述(一)
  • 基于多反应堆的高并发服务器【C/C++/Reactor】(中)ChannelMap 模块的实现
  • 微信小程序实现一个音乐播放器的功能
  • 算法基础之表达整数的奇怪方式
  • WEB 3D技术 three.js 设置图像随窗口大小变化而变化