问题背景:
current-change
事件是分页组件必不可少的事件,是换页需要使用到的事件,例如从第一页切换到第二页,问题是该组件除了会由用户手动切换分页触发外,还会因为页码的变化触发,或者说误触
<el-pagination :page-size="1" :current-page="paginationData.currentPage"
:pager-count="7" :total="paginationData.siteTotal"
:page-count="paginationData.pageCount"
@current-change="currentChange" layout="prev, pager, next"/>
页面的变化情况这里举例一种,也是博主遇到的情形
const 函数名 = async () => {
const res = await 接口(selectQuality.value)
siteData.value = res.data
paginationData.siteTotal = res.total
paginationData.pageCount = Math.ceil(res.total / 10)
}
当搜索返回的数量为0时,那么Math.ceil
计算得到的页面数量pageCount
就变为0
,没有页面数量,页码就变成了null
,如下图所示:
而当页码自动变化后,就会触发其他的函数,导致一系列问题
解决方法就是给总页数添加默认值,代码如下:
const 函数名 = async () => {
const res = await 接口(selectQuality.value)
siteData.value = res.data
paginationData.siteTotal = res.total || 0
paginationData.pageCount = Math.ceil(res.total / 10) || 1 // 默认值
}
那么这样就不会因为返回的数值为0
👉总页数为0
👉页码变为null
而导致其他的问题
仅供参考,代码写得好通常遇不到这个问题