在处理表格分页的时候,点击切换页码,接口及列表数据均正常,当前页绑定值在控制台打印已实时变更,但页面视图页码始终展示为1。经过排查后发现,问题出自在获取新的数据时,已经前置表格总数为0,例:
const page = ref(1);
const tableData = reactive({
list: [],
total: 0
});
// 分页
const handlePageChange = (e) => {
page.value = e;
initData();
};
// 获取列表
function initData() {
tableData.total = 0;
// ……
// 请求接口数据
GetTableData({ page: page.value, page_size: pageSize.value }).then((res) => {
const { code, count, data } = res;
if (code === 200) {
tableData.list = data;
tableData.total = count;
}
});
}
问题分析:
- 初始化时,总条数为0,定义的page为1,计算出来的有效currentPage为1
- 切换页码时,重新获取数据,方法将总条先数重置为0,同理计算出来的currentPage为1
- 接口正常请求并返回数据,此刻total更新,但并未触发currentPage的重新计算,导致控制台打印的page值是实际点击页码,而页面上分页器始终展示1
问题解决:
- 删除问题行代码
tableData.total = 0;
参考链接: