-
问:Antd的Table表中,对最后一页数据进行全部删除后,如何自动回到上一页?
-
浅浅的解析一下:
我所遇到的问题就是:(表中有11页的数据,一页10条)当删除最后一页的全部数据的时候页码自动跳到了上一页(也就是第10页),但是当前页面是空白没有数据的,这时候我们可以查看一下接口的传参,会发现传的 current:11(//页数)。
首先传的 11 的原因是因为在Table表中切换分页的时候会把当前页存起来,所以导致传的current参数还是11;
其次页面空白的原因就是因为调用 删除接口时 第11页的数据已经删掉了,但接口传的还是11,所以所以会导致Table中没有数据;
最后解决办法如下: -
答:(1)在初始化页面中调用获取页面数据的接口方法中拿到当前这一页data数据的length 长度
(2)然后在 rowSelection 中,拿到勾选框选中的数据
(3)最后就是在调用 删除接口 的代码段中(如下图中),通过当前页返回的data.length和勾选框选中的 length ,判断是否相等,如果相等的话,那么就是全选的一个状态并且一并判断删除的接口是否请求成功,俩者都为 true 的话,那么去对 current 进行 减 1 ,负责 current不做任何处理,正常请求一次数据接口就行 -
提示:或者当所有数据条数 除以 每页数据 得到的数据页小于当前页,则表示当前页为最后一页没有数据的页,需重新获取上一页数据刷新页面
store.delete({
//这里是调用删除接口所传的参数
}).then((res)=>{
//code===200是删除接口返回的状态值,rowData是勾选的数据
if(rowData.length === data.length && res.code === 200){
message.success('请求成功的提示信息!')
fun1({ current: current-1 , size }) //请求data数据的方法
}else if(rowData.length !== data.length && res.code === 200){
message.success('请求成功的提示信息!')
fun1({ current, size})
}else{
message.error('接口请求失败提示信息!')
}
})