收藏
回答

如何解决组件获取canvas元素为null的问题?

<canvas
    type="2d"
    canvas-id="gauge"
    id="gauge"
    class="gauge-canvas"
/>

const query = uni.createSelectorQuery()
query.select('#gauge')
    .fields({ node: true, size: true })
    .exec(res => {
      console.log("=>(rateChart.vue:90) res", res);
})


以上是uni代码,编译后的js代码如下

const query = common_vendor.index.createSelectorQuery();
      query.select("#gauge").fields({ nodetruesizetrue }).exec((res) => {
        console.log("=>(rateChart.vue:90) resaaa", res);


但其实道理一样的拿不到东西,一模一样的代码如果作为页面使用是正常的为什么同样的代码作为页面使用是正常的,作为组件使用就不行

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

2 个回答

  • Sunron
    Sunron
    06-19

    除了支付宝外,一般都要加上in(this),uni.createSelectorQuery().in(this).select(...),但是在组件中使用,这种方法也有可能拿不到数据,所以建议使用 this.createSelectorQuery().select(...) 这种方式

    const query = this.createSelectorQuery()
    query.select('#gauge')
        .fields({ node: true, size: true })
        .exec(res => {
          console.log("=>(rateChart.vue:90) res", res);
    })
    


    06-19
    有用 1
    回复
  • 金瓜兜儿
    金瓜兜儿
    06-19

    加上in(this)呢

    06-19
    有用
    回复 1
    • explorer
      explorer
      06-19
      有用,解决了
      06-19
      回复
登录 后发表内容