1***@qq.com
1***@qq.com
  • 发布:2019-06-17 15:11
  • 更新:2021-04-16 14:49
  • 阅读:1862

使用canvas绘制,在真机上就是绘制不出来

分类:uni-app

使用canvas绘制,封装到组件中,在mounted方法中调用draw,在h5是好的,在真机上就是绘制不出来。有大佬指点一二没?
组件:

<template>  
    <canvas canvas-id="ayy" class="ayy"></canvas>  
</template>  

<script>  
    export default{  
        name: "myCanvas",  
        mounted() {  
            console.log("mounted");  
            this.drawCircle();  
        },  
        methods:{  
            drawCircle(){  
                console.log("aa");  
                let ctx = uni.createCanvasContext("ayy");  
                console.log(ctx);  
                ctx.setStrokeStyle("#000000");  
                ctx.setLineWidth(6);  
                ctx.beginPath();  
                ctx.arc(50, 50, 50, 0, 2 * Math.PI);  
                ctx.stroke();  
                ctx.draw();  
            }  
        }  
    }  
</script>

使用:
<template>
<view>
<my-canvas></my-canvas>
</view>
</template>

<script>
import myCanvas from './fragments/myCanvas'
export default {
components: {
myCanvas
},
......

2019-06-17 15:11 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com

你好

1***@qq.com

1***@qq.com (作者)

应该不是代码的问题,同样的代码,在一个项目中可以,在另一个项目中就绘制不出来。

w***@163.com

w***@163.com

let ctx = uni.createCanvasContext("ayy"); 这句出错了,应该let ctx = uni.createCanvasContext("ayy",this);这样写

4***@qq.com

4***@qq.com

请问这个问题有解决吗

森屿阁

森屿阁 - 专注与前端开发

setTimeout(function(
ctx.stroke();
ctx.draw();
),500)

加定时器

  • 4***@qq.com

    这个方法我试过,首次加载出现,第二次加载就失效了

    2020-07-06 13:42

1***@qq.com

1***@qq.com

解决了吗

1***@qq.com

1***@qq.com

请问解决了吗

该问题目前已经被锁定, 无法添加新回复