node.boundingClientRect( rect=>{ console.log( 'test' ) }).exec() |
如代码所示,重复调用时,控制台会输出多个'test'。
是我使用方式不对吗? 文档里也没有介绍为什么会执行多次。
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | Bug | SelectorQuery NodesRef.boundingClientRect(function callback) | 工具 | 6.5.3 | 2.6.0 |
6 个回答
获取元素都用 wx.createSelectorQuery(),不要用变量代替,不然会循环,亲测有效。
//不要这样 多个的时候就会循环 var query = wx.createSelectorQuery() query .select('.listbox').boundingClientRect(functio(res){}).exec(); //用这种 wx.createSelectorQuery().select('.listbox').boundingClientRect(functio(res){}).exec();
方式一:创建一次,就消费一次,日志出现一次
方式二:创建一次,多次消费,日志出现多次
每次执行exec 都会触发全部boundingClientRect 里面的回调
这个方法不能重复使用吗?它会按照重复使用的次数递增重复调用回调,
借个帖,我这段代码发现一直无限执行回调函数。用的原生的,没用任何框架。
麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
你好,经过调试应该是Taro框架的问题,我没有使用原生开发。我去Taro的社区反馈一下。谢谢你的回复
好的,不客气