Uncaught TypeError: Невозможно прочитать свойство 'getAbsoluteScale' из неопределенного

Я пытаюсь преобразовать круг, но он выдает ошибку. Я не понимаю, в чем заключается проблема, над которой я уже работал с преобразованиями 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 называется

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

Другие вопросы по тегам