Page页面onReady无法获取boundingClientRect的值
发布于 6 年前 作者 yfang 12558 次浏览 来自 问答

发现一个问题,如果内容包裹在组件里,在页面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();
}

__
__

__
__调试后结果


__
__

这个情况如何解决呢?

3 回复

你的代码片段上有个setTimeout之后setData,所以不能保证在onReady的时候可以选到这个元素

 做了demo

wechatide://minicode/Q780Ejm16bZ0

回到顶部