人物略有不同
人物略有不同
  • 发布:2019-06-02 11:22
  • 更新:2019-11-14 15:34
  • 阅读:2870

uni.createSelectorQuery().select【报Bug】

分类:uni-app

详细问题描述

//开发工具是HBuilderX_alpha  项目是建  uni-app  
//通过按钮点击去取页面上的 样式为.test 的 view 元素。居然取不到   
//按例子写,结果不能用,  
methods:{  
            handleSelect:function(){  
                let view = uni.createSelectorQuery().select(".test");  
                //根本取不到view.fields ,它是未定义  
                view.fields({  
                  size: true,  
                  scrollOffset: true  
                }, data => {  
                  console.log("得到节点信息" + JSON.stringify(data));  
                  console.log("节点的宽为" + data.width);  
                }).exec();  

                view.boundingClientRect(data => {  
                  console.log("得到布局位置信息" + JSON.stringify(data));  
                  console.log("节点离页面顶部的距离为" + data.top);  
                }).exec();  
            }  
        }

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-06-02 11:22 负责人:无 分享
已邀请:
DCloud_UNI_HT

DCloud_UNI_HT

如过是在页面中使用,需要在 onReady 之后执行。

如果是在组件中使用,需要加上 .in(this) 如:uni.createSelectorQuery().in(this); 并在 mounted 之后执行。

DCloud_UNI_HT

DCloud_UNI_HT

试一下这段代码,看看可以么


<template>  
    <view class="test">  
        <button @click="clickButton">点击获取节点信息</button>  
    </view>  
</template>  

<script>  
    export default {  
        methods: {  
            clickButton() {  
                let view = uni.createSelectorQuery().select(".test");  

                view.fields({  
                    size: true,  
                    scrollOffset: true  
                }, data => {  
                    console.log("得到节点信息" + JSON.stringify(data));  
                    console.log("节点的宽为" + data.width);  
                }).exec();  

                view.boundingClientRect(data => {  
                    console.log("得到布局位置信息" + JSON.stringify(data));  
                    console.log("节点离页面顶部的距离为" + data.top);  
                }).exec();  
            }  
        }  
    };  
</script>  
  • 人物略有不同 (作者)

    你看一下我的问题 ,我就是这么写

    2019-06-03 09:47

  • 人物略有不同 (作者)

    看那问题 的图片代码

    2019-06-03 09:48

  • DCloud_UNI_HT

    回复 人物略有不同: 我就复制的你的,你的代码我运行是没问题 ,HBuilderX 是什么版本?在什么平台运行的?

    2019-06-03 09:53

  • 9***@qq.com

    回复 DCloud_UNI_HT:我也是这样,在h5平台运行正常,在微信小程序平台不行,HBuilderX版本2.0.1.20190614,该注意的问题都有注意。

    2019-06-19 18:08

  • 7***@qq.com

    回复 人物略有不同: 请问问题解决了没?

    2019-07-15 15:59

  • 7***@qq.com

    回复 DCloud_UNI_HT: 同样的问题求问,H5没问题,app获取不到

    2019-07-15 16:19

7***@qq.com

7***@qq.com

同样的问题求问,H5没问题,app获取不到

  • DCloud_UNI_HT

    注意是在 onReady 之后获取节点,如果是在组件内,注意使用 .in(this)

    2019-07-16 11:43

CJ7235

CJ7235 - 前端爱好者

同样的问题求问,第二次获取报错,h.push is not a function

该问题目前已经被锁定, 无法添加新回复