TDesign 表格分页后数据不更新是怎么回事?
我用 TDesign 的 Table 组件做了个带分页的表格,但切换页码时页面数据没变,还是第一页的内容。我明明在 onPageChange 里重新请求了接口,也更新了 data,可表格就是不刷新。
这是我的关键代码:
const handlePageChange = (pageInfo) => {
fetchData(pageInfo.current, pageInfo.pageSize).then(res => {
tableData.value = res.list; // 这里赋值了新数据
});
};
是不是我漏了什么配置?比如需要手动触发更新或者绑定 key?
你可以在 table 上加个 :key="tableKey",然后每次请求数据成功时更新一下这个 key 值,强制让表格重新渲染:
另外检查下
fetchData函数是不是异步返回有问题。如果接口数据没及时回来,可能会导致显示错乱。还有就是看看浏览器兼容性,某些老版本浏览器可能对这种数据驱动更新支持不太好。记得把关键的依赖项都写全了,别漏了什么。我之前也遇到过类似情况,折腾了半天才发现是个小细节没处理好。
试试这样改:
然后在你的 Table 组件上加上这个 key 属性:
<t-table :data="tableData" :key="tableKey"></t-table>这样做效率更高,因为每次分页都会用新 key 触发表格重绘。别担心性能问题,这种简单操作对现代浏览器来说几乎无感。记得初始化时给 tableKey 一个初始值就行。
有时候框架的响应式系统确实会漏掉一些变化,这种简单粗暴的方法反而更可靠。我以前也被这问题坑过,直接加 key 解决了好多类似场景。