0

我正在尝试转换圆圈,但它会引发错误。我不明白我已经处理过转换的问题是什么,Konva.Rect并且没有这样的错误。将变压器附加到Konva.Circle正常工作,但是当鼠标悬停在变压器锚点之一上时会引发错误。这是我将变压器连接到的方式Konva.Circle

this.setState({ attachedToId: id }, () => transformer.attachTo(clickedNode));

Konva.Circle试图将变压器附加到的组件:

<Circle
      id={id}
      ref={this.circleRef}
      x={x * linesWidth}
      y={y * linesHeight}
      radius={radius * linesHeight}
      stroke={color}
      onMouseUp={this.mouseUp}
    />

this.mouseUp调用时发生变压器连接

4

1 回答 1

1

从您的演示attachObject(node) { }函数中,第一个参数有一个 Konva 节点。你应该改变你叫它的方式:

handleClick = e => {
  const { attachObject } = this.props;

  // e - is event object
  // the next line will not work
  // attachObject(e);

  // instead you should do this:
  attachObject(e.target);
};

确保在附加时更新图层Konva.Transformer

attachObject = node => {
  const t = this.ref.current;

  t.attachTo(node);
  t.getLayer().batchDraw();
};

演示:https ://codesandbox.io/s/wxvx5xyk5

于 2019-01-17T17:22:40.167 回答