Vue+element_Table树形数据与懒加载
报错信息:
1.Error in render: “RangeError: Maximum call stack size exceeded”
2.vue.esm.js?efeb:1906 RangeError: Maximum call stack size exceeded
支持树类型的数据的显示。当 row 中包含 children 字段时,被视为树形数据。渲染树形数据时,必须要指定 row-key。支持子节点数据异步加载。设置 Table 的 lazy 属性为 true 与加载函数 load 。通过指定 row 中的 hasChildren 字段来指定哪些行是包含子节点。children 与 hasChildren 都可以通过 tree-props 配置。
使用树形结构+懒加载需要的属性:
row-key=“id” 需要指定,不指定就不会出现 右侧朝向小箭头 就没有懒加载的情况
tree-props配置树表格懒加载标识
load方法,用于点击小箭头加载数据
lazy开启懒加载以后,就可以把load来的数据追加到表格中去了
<el-table
:lazy="lazy"
:load="load"
:tree-props="treeProps"
:row-key="rowKey"
ref="multipleTable"
border
class="table"
:data="tableData"
tooltip-effect="light"
style="width: 100%"
@selection-change="handleSelectionChange"
>
AI 代码解读
load methods:
AI 代码解读
// 懒加载表格子级
lazyLoad(tree, treeNode, resolve) {
const {
id } = tree;
api
.listChildrenRecord({
parentId: id,
})
.then((arr) => {
let {
data: {
data, total },
} = arr[1];
resolve(data);
});
}
AI 代码解读
出现上述报错主要是接口返回的数据,唯一标识id,不唯一了,所以产生了上述报错:
显示调用栈溢出,id不能重复,因为指定的row-key=“id” 需要确保唯一性。