可以使用递归的方式,在函数组件中遍历树形数据,并将返回来的数据作为子节点传递给当前节点的'children'属性。同时,在每个节点上添加一个'parent'属性,用于记录当前节点的父节点信息。

示例代码如下:

function TreeNode({ data, parent }) {
  return (
    <div>
      <h3>{data.title}</h3>
      {data.children && (
        <div>
          {data.children.map(child => (
            <TreeNode key={child.id} data={child} parent={data} />
          ))}
        </div>
      )}
    </div>
  );
}

function Tree({ data }) {
  return (
    <div>
      {data.map(node => (
        <TreeNode key={node.id} data={node} parent={null} />
      ))}
    </div>
  );
}

在上面的代码中,每个节点都会递归地遍历其子节点,并将子节点作为自己的'children'属性传递下去。同时,每个节点都会记录自己的父节点信息,即'parent'属性。

在使用时,只需要将树形数据作为 props 传递给 Tree 组件即可:

const data = [
  {
    id: 1,
    title: 'Node 1',
    children: [
      {
        id: 2,
        title: 'Node 1.1',
        children: [
          {
            id: 3,
            title: 'Node 1.1.1',
            children: []
          }
        ]
      },
      {
        id: 4,
        title: 'Node 1.2',
        children: []
      }
    ]
  }
];

function App() {
  return <Tree data={data} />;
}

在上面的代码中,data 是一个树形结构的数据,包含了多个节点和它们的子节点信息。传递给 Tree 组件后,会渲染出整个树形结构。

React 函数组件中树形控件:将返回数据与自定义数据合并

原文地址: https://www.cveoy.top/t/topic/mWjx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录