G6
G6 copied to clipboard
使用 combo 实例的 addNode 方法添加子节点后,拖拽 combo 会报错
问题描述
使用 combo 实例的 addNode 方法添加子节点后,拖拽 combo 会报错
报错信息如下:
drag-combo.js?c616:405 Uncaught TypeError: item.getModel is not a function
at base.updateSignleItem (drag-combo.js?c616:405:1)
at eval (drag-combo.js?c616:391:1)
at base.traverse (drag-combo.js?c616:368:1)
at eval (drag-combo.js?c616:379:1)
at each (each.js?785f:10:1)
at base.traverse (drag-combo.js?c616:378:11)
at base.updateCombo (drag-combo.js?c616:386:1)
at eval (drag-combo.js?c616:189:1)
at each (each.js?785f:10:1)
at base.onDrag (drag-combo.js?c616:188:11)
重现链接
无
重现步骤
1、监听 render 结束事件
2、在回调中调用某已存在 combo 的 addNode
方法,传入 nodeID 添加节点
3、拖动 combo
预期行为
预期没有报错,节点添加成功
实则报错且节点添加失败(addNode
返回的却是 true
)
打断点调试发现调用的是 combo 实例上的 getItem
方法,但是实例和其原型链上并没有该方法,所以导致该错误
平台
- 操作系统: Windows11
- 网页浏览器: Chrome 97
- G6 版本: 4.5.2
屏幕截图或视频(可选)
No response
补充说明(可选)
No response
请问你是将已经存在于图上的节点,加入到 combo 中吗?如果是的话尝试这个 API graph.updateComboTree
https://g6.antv.vision/zh/docs/api/graphFunc/item#graphupdatecombotreeitem-parentid
请问你是将已经存在于图上的节点,加入到 combo 中吗?如果是的话尝试这个 API
graph.updateComboTree
https://g6.antv.vision/zh/docs/api/graphFunc/item#graphupdatecombotreeitem-parentid
~~是新添加的节点,但 combo.addChild
的执行结果是符合预期的~~
更正一下,是刚刚通过 graph.setData
添加的节点,然后立即调用 combo.addNode
出现上述问题,但 combo.addChild
的执行结果是符合预期的
graph.updateComboTree
,绑定节点成功,但是拽托 combo 的行为会失效,表现为拽托后弹回原位置
graph.setData?没有这个 API
graph.setData?没有这个 API
记错了😂,是 graph.data
新增节点 graph.addItem,更换数据 graph.changeData
尊敬的用户,您好。我们很重视您的 issue,但由于长时间没有答复,我们暂时认为这个问题已经解决。如果还有任何问题,请随时根据 issue 模版再开启新的 issue。