Я использую API Konva непосредственно в моем компоненте реакции, и он отлично работает.
У меня только одна большая проблема.
Проблема в том, что, когда компонент, содержащий контейнер ref, размонтирован, приложение реагирует на сбой, сообщая, что у staging больше нет контейнера.
Я пытался вызвать destroy на сцене, когда компонент размонтируется, он входит в этот метод, но все равно падает.
Итак, насколько я понимаю, призыв уничтожать на сцене из компонента реакции не разрушает сцену из DOM.
Может ли кто-нибудь помочь с этой проблемой?
РЕДАКТИРОВАТЬ: добавление фрагмента кода
export default class ReactComp extends Component {
renderKonva(container) {
var stage = new Konva.Stage({
container: container,
width: 500,
height: 350
});
var layer = new Konva.Layer();
var rect = new Konva.Rect({
stroke: '#155DA4',
strokeWidth: 2,
fill: '#fff',
width: 190,
height: 190,
shadowColor: 'black',
shadowBlur: 10,
shadowOffset: [10, 10],
shadowOpacity: 0.2,
cornerRadius: 2,
opacity: 0.75,
visible: true
});
layer.add(rect);
stage.add(layer);
}
render() {
return (
<div ref={ref => this.renderKonva(ref)}></div>
)
}
Поэтому, когда этот компонент отключается, я получаю сообщение об ошибке:
«На необученной сцене нет контейнера. Требуется контейнер».
Кроме того, я пытался вызвать на сцене команду destroy, но я все еще получаю ту же ошибку. Кроме того, даже если я создаю и уничтожаю сцену в renderKonva, и, по сути, у меня ничего не будет отображаться, потому что однажды созданная сцена выдает ту же ошибку.