收藏
回答

获取组件内某个view的高度始终为0?

创建了一个自定义组件

<view class="modals-bottom-dialog">
  <view id="dialogBody" class="bottom-dialog-body"></view>
</view>

.modals-bottom-dialog {
  position:fixed; 
  z-index: 999; 
  top:0; 
  left: 0; 
  right:0; 
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.4);
}
.bottom-dialog-body {
  position:absolute; 
  z-index:1000; 
  bottom:0; 
  left:0; 
  right:0; 
  height: 400rpx;
  background-color: aquamarine;
}


此时想要获取id=dialogBody的组件的宽高,在ready中执行返回为0,0

ready() {
    const obj = this.createSelectorQuery()
    obj.select('#dialogBody').boundingClientRect()
    obj.exec(function(rect) {
      contentWidth = rect[0].width
      contentHeight = rect[0].height
    });
},


rect的每个数值都为0?为什么?加了settimeout延时获取,也一样是0

回答关注问题邀请回答
收藏

1 个回答

  • Rock-小胖 [旺柴]
    Rock-小胖 [旺柴]
    2020-09-29

    ```

    wx.createSelectorQuery()

                .select("#innerRef")

                .boundingClientRect(function (inner) {

    console.log(inner)

                })

                .exec();

    ```

    2020-09-29
    有用
    回复 3
    • Rock-小胖 [旺柴]
      Rock-小胖 [旺柴]
      2020-09-29
      你这样试试,再不行就加个nextTick
      2020-09-29
      回复
    • 厦门第一帅哥
      厦门第一帅哥
      2020-09-30
      wx.createSelectorQuery()  这个是在页面中调用的,如果在组件中调用要用this.createSelectorQuery()
      2020-09-30
      1
      回复
    • TTc
      TTc
      2021-03-16回复厦门第一帅哥
      感谢!
      2021-03-16
      回复
登录 后发表内容
问题标签