如何根据其他组件的DOM坐标渲染React组件?

时间:2018-01-29 20:12:18

标签: reactjs svg tree

我使用React渲染树。节点是纯HTML,边缘是每个HTML节点内的内联SVG。

  

建议使用组件(节点),获取DOM坐标,根据这些坐标(边缘)构建新组件并渲染它们的方法是什么?

任何更改任何节点坐标的操作(例如:重命名节点或添加新节点)都应触发所有边缘的计算,因为任何移动的节点也会移动周围的节点

我有4个主要组成部分:

  • HierarchyChart,包含构建树分支的递归函数。它为每个Branch创建Node
  • Branch是包含父级Node的组件,如果存在,则为子级Node
  • Node
  • Edge

This is the kind of tree I'm trying to paint.它可以为您提供由React构建的HTML结果的线索。

到目前为止,我在componentDidMount中使用HierarchyChart来获取所有节点的DOM坐标,但这仅适用一次。所以我取得了一些成功,但是当我添加模式节点时,它并没有绘制所有边缘。

然后我尝试使用componentDidUpdate,但意识到这会触发无限循环。

任何暗示我是否使用正确的策略都受到高度赞赏。

0 个答案:

没有答案