<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({ node: true, size: true }).exec((res) => {
console.log("=>(rateChart.vue:90) resaaa", res);
但其实道理一样的拿不到东西,一模一样的代码如果作为页面使用是正常的
为什么同样的代码作为页面使用是正常的,作为组件使用就不行
除了支付宝外,一般都要加上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); })
加上in(this)呢