Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将react-native中的canvas.toDataURL()与npm react native canvas latest一起使用时出错_Javascript_Reactjs_React Native_Canvas - Fatal编程技术网

Javascript 将react-native中的canvas.toDataURL()与npm react native canvas latest一起使用时出错

Javascript 将react-native中的canvas.toDataURL()与npm react native canvas latest一起使用时出错,javascript,reactjs,react-native,canvas,Javascript,Reactjs,React Native,Canvas,这段代码给我的错误如下: “无法读取未定义的属性“构造函数” 只有当我在画布上绘制矩形、圆形等时,它才能正常工作 Android Studio是3.0.1 node-v是刺伤的问题在于侦听器中的这个cod const image = new CanvasImage(canvas); canvas.width = 100; canvas.height = 100; const context = canvas.getContext('2d'); image.

这段代码给我的错误如下:

“无法读取未定义的属性“构造函数”

只有当我在画布上绘制矩形、圆形等时,它才能正常工作

Android Studio是3.0.1


node-v是刺伤的

问题在于侦听器中的这个cod

    const image = new CanvasImage(canvas);
    canvas.width = 100;
    canvas.height = 100;
    const context = canvas.getContext('2d');
    image.src = 'http://i.imgur.com/c2wRzfD.jpg';
    image.addEventListener('load', async () => {
        context.drawImage(image, 0, 0, 100, 100);
        let dataURL = await canvas.toDataURL("image/png")
    });
它似乎将您的构造函数定义分解为
drawImage

这可以通过使用它来解决,如下所示

let dataURL = await canvas.toDataURL("image/png")

如何导入模块,是否可以发布导入语句?从“react native Canvas”导入画布,{Image as CanvasImage,Path2D};刚刚在ios上测试过,似乎还可以。我正在Android设备上测试这个,我发现了一个错误。您对此有什么想法或建议吗?如果我将Wait canvas.toDataURL()放在外部,然后生成base64会给我一个空白图像在调试器模式打开的情况下尝试
dataURL
日志,它会为图像记录
base64
,并显示它。我正在尝试android模拟器,它正在工作。让我知道你的配置。如果我把代码和你给的一样,它仍然会给我空白图像。此外,如果我添加矩形、圆形和图像,然后生成的图像(.PNG)只有矩形和圆形元素。使用调试器,在
控制台.log
中调试,它应该显示
base64
,有时一些优化会移到正在运行的调试器中,因此提高了性能在调试器控制台中获得base64吗<代码>数据URL
 handleImageRect = async (canvas) => {
        const image = new CanvasImage(canvas);
        canvas.width = 100;
        canvas.height = 100;

        const context = canvas.getContext('2d');

        image.src = 'https://image.freepik.com/free-vector/unicorn-background-design_1324-79.jpg';
        image.addEventListener('load', () => {
            console.log('image is loaded');
            context.drawImage(image, 0, 0, 100, 100);

        });
        // Move it outside
        let dataURL =  await canvas.toDataURL("image/png")
        console.log(dataURL)
    }