在 a-tree 中报错 parent 期望是对象,但获得是字符串
一、问题分析
a-tree 组件期望接受到的 parent 属性是对象,但实际传入的字段是字符串。
二、可能的原因
1. 数据初始化错误
从后端获取数据前端转换数据时发生错误。
// 从后端获取的数据格式为{id: 'group1', parentId: 'departmentA'}
const backendData = [
{ id: "departmentA", parentId: null },
{ id: "group1", parentId: "departmentA" },
{ id: "group2", parentId: "departmentA" },
];
const treeData = backendData.map((data) => {
return {
title: data.id,
key: data.id,
// 错误地将parentId当作parent传递,parentId是字符串
parent: data.parentId,
};
});
三、解决方法
1. 数据转换
将 parent 字段转换为对象
const treeData = backendData.map((data) => {
let parentObj = null;
if (data.parentId) {
parentObj = {
key: data.parentId,
};
}
return {
title: data.id,
key: data.id,
parent: parentObj,
};
});