Uncaught TypeError: Невозможно прочитать свойство 'getAbsoluteScale' из неопределенного - PullRequest
0 голосов
/ 16 января 2019

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

0 голосов
/ 17 января 2019

Из вашей демонстрации 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

...