vxe-table
vxe-table copied to clipboard
[vxe-table v4.3.5] 参数 "tree-config.transform" 与 "row.children" 有冲突
可复现的链接:
:row-config="{ isCurrent: true, keyField: 'id' }" :checkbox-config="{ labelField: 'name', checkRowKeys: demo.formData.menu }" :tree-config="{ transform: true, rowField: 'id', parentField: 'parent', expandRowKeys: [1] }"
问题描述与截图:
从4.3.0-beta.5版升级到v4.3.5后提示 :row-config="{ isCurrent: true, keyField: 'id' }" :checkbox-config="{ labelField: 'name', checkRowKeys: demo.formData.menu }" :tree-config="{ transform: true, rowField: 'id', parentField: 'parent', expandRowKeys: [1] }"
期望的结果:
告知冲突的解决办法
操作系统:
win10
浏览器版本:
edge 105.0.1343.50 (正式版本) (64 位)
vue 版本:
3.2.37
vxe-table 版本:
v4.3.5
if (state.tableConfig.isTree) { const computeData = (menuArr) => { menuArr.forEach((element) => { if (element.leaf !== undefined || element.leaf !== null) { element.leaf = !element.leaf } if (element.children && element.children.length) { computeData(element.children) } }) } if (res.data.length) { computeData(res.data) } res.data = prototype.$XEUtils.toTreeArray(res.data) res.data.forEach((element) => { delete element['children'] }) }
如果是平铺数据的状态下,删掉children就好了
如果删掉children,在渲染的时候一级分类想获取其子集的长度等操作的时候就会很难计算
渲染是由vxe-table完成的,他会自动将你的平铺数据转成树结构,如果你想计算父节点下数据条目,平铺状态下很容易计算啊,或者最开始也可以在树结构下遍历后赋值给父元素。
为啥平铺数据下没有children也还是报错
蹲一下 我也发现了这个问题。 :tree-config="{ transform: true, rowField: 'fid', parentField: 'parentId'} 因为特殊原因 每一行的id值可能有重复。我设置成fid唯一值 也会报这个错误。很烦人
let data = [
{id: 123, fid: 2, parentId: null, name: "ceshi1", 'age': 88},
{id: 345, fid: null, parentId: 2, name: "ceshi1", 'age': 88},
{id: 678, fid: null, parentId: 2, name: "ceshi1", 'age': 88},
{id: 123, fid: null, parentId: 2, name: "ceshi1", 'age': 88},
{id: 123, fid: null, parentId: 2, name: "ceshi1", 'age': 88},
{id: 123, fid: null, parentId: 2, name: "ceshi1", 'age': 88},
{id: 444, fid: null, parentId: 2, name: "ceshi1", 'age': 88},
{id: 123, fid: 5, parentId: null, name: "ceshi1", 'age': 88},
{id: 123, fid: null, parentId: 5, name: "ceshi1", 'age': 88},
{id: 123, fid: null, parentId: 5, name: "ceshi1", 'age': 88},
{id: 123, fid: null, parentId: 5, name: "ceshi1", 'age': 88},
];
最新版本也还是有这个问题
还是有类似的问题
为啥会自动给我返回的数据添加 我删都删除不了
在计算属性重新赋值时删除子节点
目前 dev模式会报这个错误,而且页面卡顿。但是prod模式不会报这个错误,也不会卡顿
先添加了一行配置完成后,在旧数据下配置一个值类型后,出现冲突,导致添加的那行直接消失了