antd分页遇到删除的问题

本文针对分页时出现的页面空数据问题提供了解决方案。当删除数据导致当前页为空时,通过判断总条数和当前页数据量来决定是否减少页数,并重新加载数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.老大提出关于分页的问题,
这里写图片描述
问题是比如一共有6页数据,第六页只有一条数据。这时你删除第五页的某一条数据,第6页还在并且展示没有数据。
解决方案:加一个判断即可。

}).then(data => {
     console.log('得到列表总数:',data);
     this.setState({
         //列表页的总条数
         total: data.data
     },()=>{
         //总条数取模,如果等于0的话,说明是当前页已经删除完数据,这时需要把页数减1
         if( (this.state.total % 10) === 0 && this.state.dataLength === 0 ){
             //如果此页没有数据的话,页数减1
             console.log('111');
             this.setState({
                 pageIndex: --this.state.pageIndex,
             },()=>{
                 //页数减1之后调用接口得到全部数据
                 this.automaticDataList();
             })
         }else {
             console.log('222');
             //如果是随便删除数据的话,在下面的else中调用列表数据。
             //this.automaticDataList();
         }
     })
 }).catch((error) => {
     console.log(error);
 })
Ant Design(antd)是一个非常流行的 React UI 库,它提供了丰富的组件来帮助开发者快速构建界面。分页组件 `Pagination` 是其中一个重要的功能模块,用于处理大量数据时的数据分割显示。 ### Antd 分页简介 `Pagination` 组件允许用户通过点击页面号码、输入目标页码或选择每页条目数等方式浏览大数据集合的不同部分。以下是其一些关键特性: 1. **基础用法**:可以设置总记录数 (`total`) 和当前页码 (`current`) 来控制展示内容。 - 示例代码: ```jsx import { Pagination } from 'antd'; function PageComponent() { return <Pagination defaultCurrent={1} total={500} />; } ``` 2. **简洁模式**:当空间有限时,可以通过 `simple` 属性开启简单风格的分页控件。 3. **自定义配置**:支持多种属性来自定义分页的行为和外观,例如改变每页显示项的数量(`pageSize`)、是否显示跳转输入框等。 4. **事件监听**:提供回调函数如 `onChange` ,可以在切换页码时触发特定逻辑操作。 ### 使用场景示例 假设有一个表格需要加载远程服务器上的用户列表,并且希望每次只请求一部分数据而不是一次性获取所有信息,则可以用到该组件结合 AJAX 请求完成动态加载效果。 ```jsx import React, { useState } from 'react'; import { Table, Pagination } from 'antd'; const UserList = () => { const [pageInfo, setPageInfo] = useState({ current: 1, pageSize: 10 }); // 模拟从服务端取得数据... const fetchData = (params) => { console.log('fetch data with params:', params); }; const handlePageChange = (newPage, newSize) => { setPageInfo({ ...pageInfo, current: newPage, pageSize: newSize }); fetchData({ page: newPage, size: newSize }); }; return ( <> <Table dataSource={[]} columns={[/* your column definitions */]} /> <Pagination onChange={handlePageChange} {...pageInfo} total={1000} /> </> ); }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值