Uncaught TypeError: невозможно прочитать свойство getAbsoluteScale из undefined

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


person Maksym Tutskyi    schedule 16.01.2019    source источник
comment
Можете ли вы сделать небольшую онлайн-демонстрацию?   -  person lavrton    schedule 16.01.2019
comment
@lavrton здесь ссылка   -  person Maksym Tutskyi    schedule 16.01.2019


Ответы (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

person lavrton    schedule 17.01.2019
comment
Извините, но я ошибся в своем примере. Я передаю узел из ссылки на реакцию следующим образом: attachObject(this.circleRef.current). И я должен сказать, что моя проблема исчезла. Я действительно не трогал свой код в течение дня, а на следующий день я попробовал еще раз, и его просто не было. Спасибо за ответ, но это просто загадочная вещь произошла: D - person Maksym Tutskyi; 18.01.2019