React -- 画布无法绘制图像

9

在这里有一些困难。如果我只是填充或对画布进行任何其他操作-就没有问题。我可以得到不带外部图像的 div。我尝试过本地图像文件和 URL...谢谢!

import React, { Component, PropTypes } from 'react';

export default class CanvasCreator extends Component {

componentDidMount() {
    this.updateCanvas();
}

updateCanvas() {
    const ctx = this.refs.canvas.getContext('2d');

    var imageObj1 = new Image();
    imageObj1.src = 'https://s-media-cache-ak0.pinimg.com/236x/d7/b3/cf/d7b3cfe04c2dc44400547ea6ef94ba35.jpg'
    ctx.drawImage(imageObj1,0,0);

}
render() {
    return (


        <canvas ref="canvas" width={300} height={300}> </canvas>

    );
 }
};
2个回答

18

你缺少了 onload 方法。以下代码可以解决这个问题:

   updateCanvas() {
    const ctx = this.refs.canvas.getContext('2d');

    var imageObj1 = new Image();
    imageObj1.src = 'https://s-media-cache-ak0.pinimg.com/236x/d7/b3/cf/d7b3cfe04c2dc44400547ea6ef94ba35.jpg'
 imageObj1.onload = function() {
        ctx.drawImage(imageObj1,0,0);
}

}

0

对我来说,为了使其工作,还需要添加宽度和高度!

例如:

imageObj1.onload = function() {
    ctx.drawImage(imageObj1, 0, 0, 500, 500)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接