antvis/G6

如何enable / disable plugin? #4712

neolee6053 posted onGitHub

问题描述

这是我现在的code. function addMinimap() { minimapEnabled = !minimapEnabled; if (minimapEnabled) graph.addPlugin(minimap); else graph.removePlugin(minimap); }

但是被remove了的plugin就不能在被加进去,因为destroyed 了

G6代码 :

/**

  • 添加插件

  • @param {object} plugin 插件实例

  • / Graph.prototype.addPlugin = function (plugin) { var self = this; if (plugin.destroyed) { return; } self.get('plugins').push(plugin); plugin.initPlugin(self); };

    /**

  • 添加插件

  • @param {object} plugin 插件实例

  • / Graph.prototype.removePlugin = function (plugin) { var plugins = this.get('plugins'); var index = plugins.indexOf(plugin); if (index >= 0) { plugin.destroyPlugin(); plugins.splice(index, 1); } };

重现链接

https://codesandbox.io/s/sparkling-shadow-5cz3tr?file=/index.js

重现步骤

如上

预期行为

如上

平台

  • 操作系统: [ Windows.]
  • 网页浏览器: [Firefox]
  • G6 版本: [4.8.15]

屏幕截图或视频(可选)

No response

补充说明(可选)

No response


卸载插件后,如果要再次添加同一个插件,需要重新创建一个新的实例,否则可能会出现错误。要解决这个问题,可以在卸载 minimap 时,销毁之前的 minimap 对象实例,然后在添加 minimap 时再创建一个新的实例

posted by yvonneyx almost 2 years ago

谢谢,现在我每次都 new instance。唯有这样。

posted by neolee6053 almost 2 years ago

Fund this Issue

$0.00
Funded

Pull requests