'Get id of dragged element in d3.js

I am probably having some kind of brain damage atm because something like this should be trivial.

I got a bunch of SVG circles rendered manually (via React). I am then attaching d3 drag behavior to all of them. The drag behavior is applied, and the drag function is being executed, but when I drag one of these circles I am not able to respond accordingly because I do not know which one of them was moved. Where can I get the ID of dragged element?

I have checked a few other questions and found just some crazy filter solution... that cannot be it.

I have also peeked at docs and found the subject property.. however that one is null everywhere I tried it.

My code:

componentWillUpdate() {
  let nodes = d3.selectAll("circle");

  const dragFn = (d,i) => {
    d3.event.sourceEvent.stopPropagation();
    this.props.onNodeDrag(I_NEED_AN_ID_HERE);
  }

  const dragBehavior = d3.behavior.drag();
  dragBehavior.on('drag', dragFn);
  dragBehavior.on('dragstart', () => {
    d3.event.sourceEvent.stopPropagation();
  });

  nodes.call(dragBehavior);
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source