我需要在组件就绪的时候知道它的宽高,如下在ready函数内做的:
Component({ ready: function ready() { // TODO: 首次打开开发者工具弹出警告: // VM54:1 An SelectorQuery call is ignored because no proper page or component is found. var query = this .createSelectorQuery(); query.select( '#foo' ).boundingClientRect(); query.exec( function (_ref) { var component = _ref[0]; console.log( 'component' , component); }); } }); |
但这一步会在第一次打开开发者工具的时候报错:
VM54:1 An SelectorQuery call is ignored because no proper page or component is found. Please considering using `SelectorQuery.in` to specify a proper one.
会发现query.exec根本没有执行。这只在第一次打开开发者工具的时候才会发生,后续的编译不会出现这个问题了。我现在担心的是在真机上是否也会这样?希望官方能够尽快解决这个漏洞。
你好,这是一个已知问题,我们会尽快进行修复。另外建议后续经过搜索后再提问,以提高问题解答的效率。
这个问题我是搜索过的,但相关的问题没有任何答案,所以我又单独提了一个,毕竟我给出的代码片段还是比较简洁的。
最新的开发者工具仍未修复,真怕真机遇到
这个虽然是开发者工具中的问题,但是在基础库中修复的。所以要在项目设置中换新的基础库版本(>=2.3.1)才行。
亲测可行,谢谢
在页面里面用wx.createSelectorQuery()获取组件里面的dom,返回结果是null,已经设置了定时器,是小程序不支持这个操作么?还是其他什么原因呢?
嗯,我也是。。我在真机上还没遇到,不过有的人据说是遇到了
对,我也看到过相关的评论。
这个bug的状态现在是修复中了~
在哪里看到的状态?
有个官方的人回复的
在页面里面用wx.createSelectorQuery()获取组件里面的dom,返回结果是null,已经设置了定时器,是小程序不支持这个操作么?还是其他什么原因呢?