GGEditor icon indicating copy to clipboard operation
GGEditor copied to clipboard

Canvas 节点在移出屏幕后消失

Open Magikarp-2020 opened this issue 5 years ago • 4 comments

版本

请检查问题是否存在于最新版本中

3.1.1

环境

系统、浏览器、React 等版本信息

Chrome: 81.0.4044.138 macOS Catalina 10.15.4 [email protected]

重现链接

最小化重现错误以便精准定位问题,例如:Flow / Mind

https://ggeditor.com/_demos/index-10/

重现步骤

清晰的重现步骤以便迅速定位问题

  1. 向右拖动画布将节点移出显示区域外
  2. 向左拖动画布显示节点

点击这里 可以查看操作视频

期望的结果是什么

正确的显示节点

实际的结果是什么

无法显示节点数据

Magikarp-2020 avatar May 12 '20 09:05 Magikarp-2020

有一个备选方案,设置 renderer 为 svg 即可解决。 G6 底层渲染引擎造成的问题,参考:https://github.com/antvis/G6/issues/1492 此外,设置 renderer 为 svg 后会引发新的问题:删除命令失效,删除某节点后,节点并没有从画布消失。

Ynewtime avatar May 14 '20 03:05 Ynewtime

~找到一个还不错的解决方案~(renderer 为 canvas):

/** 在官方的解决方案未出来前,先通过 refreshPositions 规避 graph 消失的 bug */
graph.on('canvas:dragend', () => {
  graph.refreshPositions()
})

呃... 还是没有从根本解决问题... 只能等更新了

Ynewtime avatar May 14 '20 10:05 Ynewtime

可以先把局部渲染关掉临时解决这个问题:

graph.get('canvas').set('localRefresh', false);

在实例化 graph 后调用。 底层渲染引擎正在排期修复中。

Yanyan-Wang avatar May 15 '20 02:05 Yanyan-Wang

可以先把局部渲染关掉临时解决这个问题:

graph.get('canvas').set('localRefresh', false);

在实例化 graph 后调用。 底层渲染引擎正在排期修复中。

how to get graph in react ? by ref ?

runnerSnail avatar Jan 06 '21 03:01 runnerSnail