У меня проблема с использованием React JS и холста вместе.Холст мерцает при реагировании rejenders
все, кажется, работает гладко, но когда метод визуализации вызван из-за изменений в другой части моего мерцания холста приложения. Кажется, что реакция повторно добавляет его в DOM (может быть, потому, что я играю анимацию на нем, и его рисованный кадр отличается каждый раз).
Это мой метод визуализации:
render: function() {
var canvasStyle = {
width: this.props.width
};
return (
<canvas id="interactiveCanvas" style={canvasStyle}/>
);
}
В височной решения я прилагаю мой холст тег вручную, без reactjs:
render: function() {
var canvasStyle = {
width: this.props.width
};
return (
<div id="interactivediv3D">
</div>
);
}
И потом:
componentDidMount: function() {
var canvasStyle = {
width: this.props.width
};
var el = document.getElementById('interactivediv3D');
el.innerHTML = el.innerHTML +
'<canvas id="interactive3D" style={'+canvasStyle+'}/>';
},
И работает правильно. Но я думаю, что это не чистый способ, и лучше сделать этот тег canvas с помощью responsejs.
Любая идея, как я могу решить проблему? или, по крайней мере, избежать реакции re-rendering этого холста, когда изменился только рисованный кадр.
Есть что-то еще, что вызывает переопределение, которое вы описываете. Я создал этот простой jsFiddle (http://jsfiddle.net/wiredprairie/amq1t7jc/), который создает холст, а затем сохраняет перезапись холста каждые 16 мс. Он не мерцает, поскольку холст не воссоздается. – WiredPrairie