在componentDidUpdate中设置img.src不能触发img.onload事件回调

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的回调不能触发;有谁知道为什么吗?


GCT1015
浏览 987回答 1
1回答

白衣染霜花

初始化第一次渲染这个生命周期是不会执行的, 因此应该不是onload不执行,是整个都不执行吧?如果不是第一次渲染的情况的话, 那就需要你贴一下你的script中写的可行的代码来分析了
打开App,查看更多内容
随时随地看视频慕课网APP