收藏
回答

Page页面onReady无法获取boundingClientRect的值

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug wx.createSelectorQuery() 微信iOS客户端 6.6.6 1.7.4

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



调试后结果



这个情况如何解决呢?

最后一次编辑于  2018-05-10
回答关注问题邀请回答
收藏

3 个回答

  • cunjinli
    cunjinli
    2018-05-10

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

    2018-05-10
    赞同
    回复
  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-05-10

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-05-10
    赞同
    回复
  • Six006
    Six006
    2018-05-10

     做了demo

    wechatide://minicode/Q780Ejm16bZ0


    2018-05-10
    赞同
    回复