收藏
回答

canvas.createImage is not a function?报错

draw:function(n){

var that=this;

let canvas = this.data.canvas;

let ctx = this.data.ctx;

let img=canvas.createImage();

img.src='temp[n]'

编译后提示canvas.createImage is not a function;

回答关注问题邀请回答
收藏

3 个回答

  • Admin ²º²⁴
    Admin ²º²⁴
    2020-08-04

    谢邀:

    let canvas = this.data.canvas;
    请先确定你的this.data.canvas是已经获取到的wxml里面有的canvas组件
    
    2020-08-04
    有用 1
    回复 5
    • 律动
      律动
      2020-08-04
      var that=this;
          var n=0;
          const query = wx.createSelectorQuery()
          query.select('#myCanvas')
          .fields({ node: true, size: true })
          .exec((res) => {
          const canvas = res[0].node
          const ctx= canvas.getContext('2d')
          that.setData({
            canvas:canvas,
            ctx:ctx
          })
      2020-08-04
      回复
    • 律动
      律动
      2020-08-04
      你好,是这样子吗?
      2020-08-04
      回复
    • Admin ²º²⁴
      Admin ²º²⁴
      2020-08-04回复律动
      这个代码有可能会有异步问题
      就是还没有setData完成,就开始draw了,这个时候this.data.canvas是没有值的,你可以在setData成功后才调用draw
      另外,createSelectorQuery这段代码需要放在页面渲染完成后执行。否则会获取不到canvas
      2020-08-04
      回复
    • 律动
      律动
      2020-08-04
      是的,我刚才发现了,谢谢了
      2020-08-04
      回复
    • 南宁
      南宁
      2021-06-15
      解决了吗
      2021-06-15
      回复
  • e
    e
    2022-05-28

    今天也碰到这个错误了。

    一个大坑就是 canvas 尽量不要放在 wx:if里,可能一开始 if 条件是 false,哪怕后面重新set为true,

    也会因为错误已经发生而不可再次 select

    2022-05-28
    有用 1
    回复
  • 律动
    律动
    2020-08-04

    我用的就是2d

    2020-08-04
    有用
    回复
登录 后发表内容
问题标签