Bootstrap

在 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,

  };

});

;