el-pagination 分页器,点击页码切换但未更新选中页

88 阅读1分钟

在处理表格分页的时候,点击切换页码,接口及列表数据均正常,当前页绑定值在控制台打印已实时变更,但页面视图页码始终展示为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;
      }
  });
}

问题分析:

  1. 初始化时,总条数为0,定义的page为1,计算出来的有效currentPage为1
  2. 切换页码时,重新获取数据,方法将总条先数重置为0,同理计算出来的currentPage为1
  3. 接口正常请求并返回数据,此刻total更新,但并未触发currentPage的重新计算,导致控制台打印的page值是实际点击页码,而页面上分页器始终展示1

问题解决:

  1. 删除问题行代码tableData.total = 0;

参考链接:

  1. blog.csdn.net/weixin_4554…
  2. github.com/ElemeFE/ele…
  3. element-plus.org/zh-CN/compo…