react函数组件中tree树形控件将返回来的数据作为树的children和自己写的数据作为树的parent组在一起
可以通过递归实现将返回来的数据作为树的children和自己写的数据作为树的parent组在一起。具体实现方法如下:
-
定义一个组件Tree,接收两个props:data和parent。
-
在Tree组件中,先将返回来的数据和自己写的数据组合在一起,形成一个新的数组。
-
遍历这个新的数组,对于每个元素,判断它是否有children,如果有,则递归调用Tree组件,并将当前元素作为parent传入。
-
如果没有children,直接渲染该元素。
代码示例:
function Tree({ data, parent }) {
const combinedData = [...parent, ...data];
return (
<ul>
{combinedData.map((item) =>
item.children ? (
<li key={item.id}>
{item.name}
<Tree data={item.children} parent={combinedData} />
</li>
) : (
<li key={item.id}>{item.name}</li>
)
)}
</ul>
);
}
在上面的代码中,我们在Tree组件内部定义了一个combinedData数组,它包含了传入的data和parent两个数组中的所有元素。接下来,我们遍历combinedData数组,对于每个元素,如果它有children,则递归调用Tree组件,并将当前元素作为parent传入。如果没有children,则直接渲染该元素。
这样就可以将返回来的数据作为树的children和自己写的数据作为树的parent组在一起了。
原文地址: https://www.cveoy.top/t/topic/bsT8 著作权归作者所有。请勿转载和采集!