antvx6绑定子节点后子节点getParent()为null?

问题原因:

antvx6中的setChildren()setParent()都是单向绑定,如果使用setChildren()或设置父节点的children属性,只能让父认子,而子不认父,父节点调getChildren()有值,而子节点调getParent()为null。

解决方案:

使用addChild()可以双向绑定。如果是通过预设数据的方式,可以在父节点设置children绑定子节点,同时在子节点设置parent绑定父节点,实现双向绑定。

预设数据:

const children = {
  id: 'children',
  shape: 'custom-node',
  label: 'childrenNode',
  ...
  parent: 'parent' // 绑定父节点,getParent()有值,否则无值
}

const parent = {
  id: 'parent',
  shape: 'custom-node',
  label: 'parentNode',
  ...
  children: ['children'] // 绑定子节点
}

Graph.fromJSON([children, parent])

调用API:

const children = graph.addNode({
  shape: 'custom-node',
  label: 'childrenNode'
})

const parent = graph.addNode({
  shape: 'custom-node',
  label: 'parentNode'
})

parent.setChildren([children]) // 单向绑定,入参为数组,子项getParent()为null
parent.addChild(children) // 双向绑定,入参为cell对象
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容