D3.js-将节点从图形组件中移出

时间:2019-09-17 12:40:31

标签: reactjs d3.js graph nodes

我试图将一个节点拖到一个图形组件中并将其拖放到detailsContainer组件中(以便通过简单的拖放来更改节点的数据),但是我找不到将节点取出的方法图组件的详细信息(以及详细信息之一)。 enter image description here

如您所见,所选节点(具有蓝色形状的节点)在详细信息组件下,我希望将其结束。 拖动的代码在这里:

export function addDragEvents(simulation, nodesSelection) {
  nodesSelection.call(d3.drag() // eslint-disable-line prefer-reflect
    .on("start", dragStarted)
    .on("drag", dragging)
    .on("end", dragEnded));

  function dragStarted(node) {
    if (!d3.event.active) {
      simulation.alphaTarget(0.2).restart();
    }

    node.fx = node.x; // eslint-disable-line no-param-reassign
    node.fy = node.y; // eslint-disable-line no-param-reassign
  }

  function dragging(node) {
    node.fx = d3.event.x; // eslint-disable-line no-param-reassign
    node.fy = d3.event.y; // eslint-disable-line no-param-reassign
  }

  function dragEnded(node) {
    if (!d3.event.active) {
      simulation.alphaTarget(0);
    }

    Reflect.deleteProperty(node, "fx");
    Reflect.deleteProperty(node, "fy");
  }
}

那么,解决此问题的最佳解决方案是什么?

谢谢

0 个答案:

没有答案