componentDidUpdate(prevProps, prevState, snapImg){
if(this.props.bookImg!=null && this.props.bookImg!==prevProps.bookImg){
var canvas= document.createElement('canvas');
var ctx= canvas.getContext('2d');
var img= new Image();
img.crossOrigin= 'Anonymous';
var dataURL;
img.onload=function() {
console.log('fn');
ctx.drawImage(img, 0, 0);
dataURL= canvas.toDataURL("image/jpeg");
console.log(dataURL);
}
img.src=this.props.bookImg;
console.log('end');
}
}
这段代码,我在<script>标签内测试时是有效的,但用在componentDidUpdate里img.onload的回调不能触发;有谁知道为什么吗?
初始化第一次渲染这个生命周期是不会执行的, 因此应该不是onload不执行,是整个都不执行吧?
如果不是第一次渲染的情况的话, 那就需要你贴一下你的script中写的可行的代码来分析了