<view class="warn" @tap="navToAddr" id="warn"><text>测试</text></view>
用uni.createSelectorQuery().in(this).select(".warn");exec时报错TypeError: Cannot read property 'ref' of undefined
用uni.createSelectorQuery().in(this).select("#warn");没问题,见图1
一模一样的代码在vue下面执行的时候就没有问题,见图2
代码:
<template>
<view>
<view class="warn" @tap="navToAddr" id="warn"><text>测试</text></view>
</view>
</template>
<script>
export default {
mounted() {
this.test('mounted');
},
onReady(e) {
this.test('ready');
},
methods:{
test(e) {
try {
const query1 = uni.createSelectorQuery().in(this).select(".warn"); // 这里要加上select
query1.boundingClientRect(data => {
console.log("得到布局位置信息2"+e + JSON.stringify(data));
console.log("节点离页面顶部的距离为2"+e + data.top);
}).exec();
} catch (e) {
console.log(e)
}
try {
const query1 = uni.createSelectorQuery().in(this).select("#warn"); // 这里要加上select
query1.boundingClientRect(data => {
console.log("得到布局位置信息1"+e + JSON.stringify(data));
console.log("节点离页面顶部的距离为1"+e + data.top);
}).exec();
} catch (e) {
console.log(e)
}
}
}
}
</script>
<style>
.warn {
width: 120px;
height: 30px;
}
</style>