// pages/index/index.vue
... html
<template>
<view class="my-skeleton">
<view class="my-skeleton-rect" style="marign-bottom: 10px;">我是容器里面的内容</view>
<view class="my-skeleton-rect" style="marign-bottom: 10px;">我是容器里面的内容</view>
<view class="my-skeleton-rect" style="marign-bottom: 10px;">我是容器里面的内容</view>
<childSkeleton :loading="loading"></childSkeleton>
</view>
</template>
... js
mounted() {
setTimeout(() => {
const query = uni.createSelectorQuery().in(this);
query.selectAll('.my-skeleton-rect').boundingClientRect().exec((res) => {
// 这里只打印了3个元素,按理来说应该打印4个元素
// 输出了
// 0: {id: "", dataset: {…}, left: 0, right: 320, top: 0, …}
// 1: {id: "", dataset: {…}, left: 0, right: 320, top: 21, …}
// 2: {id: "", dataset: {…}, left: 0, right: 320, top: 42, …}
console.error('获取到的所有矩形元素1:', res)
});
}, 1000);
this.$nextTick(() => {
const query = uni.createSelectorQuery().in(this);
query.selectAll('.my-skeleton-rect').boundingClientRect().exec((res) => {
// 这里只打印了3个元素,按理来说应该打印4个元素
// 输出了
// 0: {id: "", dataset: {…}, left: 0, right: 320, top: 0, …}
// 1: {id: "", dataset: {…}, left: 0, right: 320, top: 21, …}
// 2: {id: "", dataset: {…}, left: 0, right: 320, top: 42, …}
console.error('获取到的所有矩形元素2:', res)
});
})
}
// components/childSkeleton/childSkeleton
... html
<template>
<view class="my-skeleton-rect" style="marign-bottom: 10px;">我是子容器里面的内容</view>
</template>

- 发布:2022-06-11 11:37
- 更新:2022-10-27 16:56
- 阅读:2705
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win7专业版
HBuilderX类型: 正式
HBuilderX版本号: 3.4.6
第三方开发者工具版本号: stable 1.05.2204250
基础库版本号: 2.24.5
项目创建方式: HBuilderX
示例代码:
操作步骤:
- 创建uniapp普通模板项目
- 编写项目代码示例里面的代码
- 创建uniapp普通模板项目
- 编写项目代码示例里面的代码
预期结果:
打印4个元素
打印4个元素
实际结果:
只打印3个元素
只打印3个元素
bug描述:
使用uni.createSelectorQuery获取不到子组件里面的元素