我有一个使用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