这是在网络上选择多个节点的画布绘制的jQuery示例:
如何将其翻译为React?
我在此沙箱中设置了react-graph-vis
(source),并向图表添加了参考:
https://codesandbox.io/s/5m2vv1yo04
.getContext("2d")
react-graph-vis
方法mentioned here mouseup
上,在画布上绘制的框中选择节点,然后清除绘图也许我正朝着错误的方向前进。
答案 0 :(得分:5)
我使用您共享的JSSampler示例将其整合在一起。
您只需要使用ref连接网络和画布。其他所有事情几乎都落实到位。 https://codesandbox.io/s/5m2vv1yo04
答案 1 :(得分:2)
vis.js文档揭示了Network对象具有公开的方法(http://visjs.org/docs/network)。 react-graph-vis显示,您可以通过将回调传递到getNetwork
的{{1}}属性来访问这些方法。该回调将通过对基础网络对象的引用来调用,此时您应将该参数分配给类属性,如@Github问题中的@Irecknagel所述。
在执行操作时向Graph组件添加引用将包装该组件。但是,由于网络是由Graph组件构造的对象,因此不一定提供对网络的引用。
关于添加事件侦听器,react-graph-vis演示源代码可能会有所帮助。他们将事件监听器定义为一个对象,然后像这样将其作为prop传入。
Graph
由于我对软件包不熟悉,因此我不确定调用// in render or elsewhere depending on scoping needs
const events = {
select: function(event) {
var { nodes, edges } = event;
console.log("Selected nodes:");
console.log(nodes);
console.log("Selected edges:");
console.log(edges);
}
};
// return of render
<Graph graph={graph} options={options} events={events} style={{ height: "640px" }} />
的最终目标是什么。我不确定您定义的“最终目标”是否在您使用的软件包范围内。