收藏
回答

创建'2d'canvas出现Cannot read 'node' of null的问题?


想创建一个2d类型的canvas,采用微信官方文档中的范例,使用wx.createSelectorQuery().select('#').fields({ node: true, size: true }).exec()语句,可调试总是出错,显示Cannot read property 'node' of null;at SelectorQuery callback function。TypeError: Cannot read property 'node' of null。

index.wxml文件

<view class="head-container">

<canvas type="2d" canvas-id="canvasIdPass" style="width: 300px; height: 300px;"></canvas>

</view>


index.js文件

onLoad:function(){

wx.createSelectorQuery().select('#canvasIdPass').fields({ node: true, size: true }).exec(function(res){

const canvas = res[0].node

const ctx = canvas.getContext('2d')

console.log('res[0]', res[0])

})

}

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

5 个回答

  • 码上就好?
    码上就好?
    2021-09-13

    使用 taro-vue 进行组件封装时遇到同样报错,将 canvas 初始化放到 Taro.nextTick 里执行即可。

    2021-09-13
    有用 1
    回复
  • 回眸
    回眸
    06-14

    <canvas id="firstCanvastype="2d"></canvas>

    wx.createSelectorQuery().select('#firstCanvas').fields({node:true,size:true}).exec((res) => {

    这样写,还是报TypeError: Cannot read property 'node' of null。不知为啥?

    06-14
    有用
    回复
  • SuperMan
    SuperMan
    2020-08-10

    我都2.12.0都是返回null

    2020-08-10
    有用
    回复 1
    • SuperMan
      SuperMan
      2020-08-10
      解决了,原来是要指定type="2d"的,我用的 taro
      2020-08-10
      回复
  • 柯宇
    柯宇
    2020-03-09

    库的版本还得在2.8.1以上,否则也是报null的错

    2020-03-09
    有用
    回复
  • WeiYuan
    WeiYuan
    2020-03-01

    艾玛,我这白痴问题提的真有问题啊

    感谢啊

    2020-03-01
    有用
    回复 2
    • 万有青年
      万有青年
      2020-04-30
      怎么解决的呢
      2020-04-30
      回复
    • 成风
      成风
      2020-05-29回复万有青年
      修改基础库,然后楼主那个canvas的id写错了,老版本是canvas-id,新版本直接是id
      2020-05-29
      1
      回复
登录 后发表内容
问题标签