发现一个问题,如果内容包裹在组件里,在页面onReady中无法获取到boundingClientRect返回的值
1.先看一下正常情况获取位置
index.wxml
<view>123</view>
<view class="bc-red"></view>
<view>456</view>
index.js
onReady() {
let query = wx.createSelectorQuery();
query.selectAll('.bc-red').boundingClientRect(rects => {
console.log(rects);
}).exec();
}
调试后结果
2.再看一下异常情况
index.wxml
<nop-page>
<view>123</view>
<view class="bc-red"></view>
<view>456</view>
</nop-page>
index.js
onReady() {
let query = wx.createSelectorQuery();
query.selectAll('.bc-red').boundingClientRect(rects => {
console.log(rects);
}).exec();
}
调试后结果
这个情况如何解决呢?
你的代码片段上有个setTimeout之后setData,所以不能保证在onReady的时候可以选到这个元素
做了demo
wechatide://minicode/Q780Ejm16bZ0
麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题