小程序
小游戏
企业微信
微信支付
扫描小程序码分享
昨天到现在一直遇到获取wxml节点为空的问题, 具体实现为一个index页面添加一个子组件, 然后在组件中调用wx.createSelectorQuery().select('xxx').boundingClientRect(function(rect){
console.log(rect)
}).exec(res=>{
console,log(res)
})
结果一直未空, 有谁遇到过么?
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
请阅读文档的 SelectorQuery.in 部分。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你好,这个API在引入自定义组件后有点变化,即调用的时候不会跨组件查找节点。详情请查询文档。
但确实有跨组价获取的需求, 如何解决的呢?
你好,这里并不是说不能跨组件,而是默认不会跨组件。如果需要,请使用跨组件后代选择器:
跨自定义组件的后代选择器:.the-ancestor >>> .the-descendant
.the-ancestor >>> .the-descendant
我跨子组件节点查到了,但是top,left这些值一直是0是什么原因?dataset设的值都能正常拿到
大多是这个节点或者父节点有 hidden 或者 display:none 之类的,这种情况下会返 0
确实是,我刚也发现了,谢谢大佬,已经解决了
用this,组件里不要用wx
@5楼
var
query =wx.createSelectorQuery().
in
(
this
);
query.selectAll(
'.wepy-like'
).boundingClientRect((rects)=>{
debugger;
.wepyLikeHeight=rects[0].height;
}).exec()
没效果进不去
我并没有跨组件调用节点 我在组件内部调用自己的节点 为空
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
请阅读文档的 SelectorQuery.in 部分。
你好,这个API在引入自定义组件后有点变化,即调用的时候不会跨组件查找节点。详情请查询文档。
但确实有跨组价获取的需求, 如何解决的呢?
你好,这里并不是说不能跨组件,而是默认不会跨组件。如果需要,请使用跨组件后代选择器:
跨自定义组件的后代选择器:
.the-ancestor >>> .the-descendant
我跨子组件节点查到了,但是top,left这些值一直是0是什么原因?dataset设的值都能正常拿到
大多是这个节点或者父节点有 hidden 或者 display:none 之类的,这种情况下会返 0
确实是,我刚也发现了,谢谢大佬,已经解决了
用this,组件里不要用wx
我跨子组件节点查到了,但是top,left这些值一直是0是什么原因?dataset设的值都能正常拿到
@5楼
var
query =wx.createSelectorQuery().
in
(
this
);
query.selectAll(
'.wepy-like'
).boundingClientRect((rects)=>{
debugger;
this
.wepyLikeHeight=rects[0].height;
}).exec()
没效果进不去
我跨子组件节点查到了,但是top,left这些值一直是0是什么原因?dataset设的值都能正常拿到
我并没有跨组件调用节点 我在组件内部调用自己的节点 为空