5***@qq.com
5***@qq.com
  • 发布:2019-11-07 10:56
  • 更新:2023-05-31 10:19
  • 阅读:1136

【报Bug】uni.createCanvasContext在HBuilderX更新到2.3.7后,draw()需延时才能绘制,以前的版本不需要延时

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]uni.createCanvasContext在HBuilderX更新到2.3.7后,draw()需延时才能绘制,以前的版本不需要延时

重现步骤

[步骤]
const ctx = uni.createCanvasContext('myCanvas')
ctx.moveTo(10, 10)
ctx.lineTo(100, 10)
ctx.lineTo(100, 100)
ctx.fill()

        // ctx.draw()  

        setTimeout(()=>{  
            ctx.draw()  
        },100)  

[结果]
必须setTimeout 后才会绘制
[期望]
直接 ctx.draw()可以绘制,以前的版本就可以

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号] Win10

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?] h5和app,小程序没试过

[运行端版本号] Chrome 版本 78.0.3904.87(正式版本) (64 位)和各种安卓模拟器

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试] HBuilderX创建

[编译模式是老模板模式还是新的自定义组件模式?]自定义组件模式

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]594455286

2019-11-07 10:56 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

不要在onLoad里写,写在onReady里面

rok138

rok138

我也遇到同样的问题,第一次执行时,需要添加settimeout延迟才能画出来,不然画不出来,但是第2次就不需要延迟了

  • rok138

    3.8.3.20230526

    2023-05-31 10:22

  • d***@qq.com

    我的加了延时页面,也没有出来,不知道怎么回事,模拟器正常的,用pc端微信打开小程序也是正常的,一旦使用手机小程序(安卓微信小程序、苹果微信小程序都试过)就不行了

    2023-07-16 00:46

要回复问题请先登录注册