【发布时间】:2020-12-16 07:47:54
【问题描述】:
我有一个带有 React 的简单树,这棵树的数据来自根节点,它递归地渲染它的子节点 -
<div className="Tree">
<div>{props.name}</div>
<div className="children">
{props.children &&
props.children.map((item) => {
return <TreeNode name={item.name} children={item.children} />;
})}
</div>
</div>
通过更改 TreeNode 组件并使用 useState 我如何选择将子节点添加到树中的任何节点的操作?
这是我到目前为止的代码 - Demo
(您可以在按钮中实现添加子项的操作,并为新子项指定您想要的任何名称)
【问题讨论】:
-
在您的示例中,您渲染了一个独立的 TreeComponent,但您希望将树作为状态保持在更高级别。您还应该将键应用于映射元素,以便在状态更改时仅重新呈现必要的内容。请参阅此答案以获取有效的递归示例:Alternately style items in deeply nested lists with React
标签: javascript reactjs react-hooks