我有一個使用React JS和畫布在一起的問題。當reactjs重新渲染時畫布閃爍
一切似乎順利工作,但渲染時方法被調用由於我的應用程序的畫布閃爍的另一部分的變化。看起來反應是將它重新添加到DOM中(也許是因爲我正在播放動畫,並且它的繪製幀每次都不相同)。
這是我的渲染方法:
render: function() {
var canvasStyle = {
width: this.props.width
};
return (
<canvas id="interactiveCanvas" style={canvasStyle}/>
);
}
隨着時間的解決方案我手動添加我的canvas標籤,無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+'}/>';
},
它作品正確。但我認爲這不是一個乾淨的方法,最好使用reactjs來渲染這個canvas標籤。
任何想法,我該如何解決問題?或者至少避免只在繪製的框架改變時重新渲染這個畫布。
還有其他內容導致您正在描述的重新渲染。我創建了這個簡單的jsFiddle(http://jsfiddle.net/wiredprairie/amq1t7jc/),它創建一個畫布,然後每隔16ms覆蓋畫布。它不閃爍,因爲畫布不被重新創建。 – WiredPrairie 2015-03-31 18:46:21