小程序动态获取元素高度报错VM14689:1 thirdScriptError Cannot read property 'height' of null;at SelectorQuery callback function TypeError: Cannot read property 'height' of null

摘要:
小程序动态获取元素高度报错原因是因为该元素此刻是隐藏不显示的。那么怎么判断避免这个错误呢?eg:id为c3的元素存在,id为c4的元素不存在。wx.createSelectorQuery().select.boundingClientRect.exec()wx.createSelectorQuery().select.boundingClientRect.exec()打印结果如下:所以,当获取某个属性的时候,我们要先判断rect对象存在不存在就可以了,例如我们获取某个元素高度的时候,就可以如下来判断:leth=rect?希望这篇文章对你有所帮助!

小程序动态获取元素高度报错

小程序动态获取元素高度报错VM14689:1 thirdScriptError Cannot read property 'height' of null;at SelectorQuery callback function TypeError: Cannot read property 'height' of null第1张

原因是因为该元素此刻是隐藏不显示的。

那么怎么判断避免这个错误呢?

e g:

id为c3的元素存在,id为c4的元素不存在。

 wx.createSelectorQuery().select('#c3').boundingClientRect(function(rect) {
      console.log(rect)//{id:...}
}).exec()

 wx.createSelectorQuery().select('#c4').boundingClientRect(function(rect) {
      console.log(rect)//null
  }).exec()

打印结果如下:

小程序动态获取元素高度报错VM14689:1 thirdScriptError Cannot read property 'height' of null;at SelectorQuery callback function TypeError: Cannot read property 'height' of null第2张

所以,当获取某个属性的时候,我们要先判断 rect 对象存在不存在就可以了,例如我们获取某个元素高度的时候,就可以如下来判断:

let h = rect?rect.height:0

这样就不会报错了。

希望这篇文章对你有所帮助!

免责声明:文章转载自《小程序动态获取元素高度报错VM14689:1 thirdScriptError Cannot read property 'height' of null;at SelectorQuery callback function TypeError: Cannot read property 'height' of null》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇shell中的条件判断诊断工具--arthas使用教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#给ExpandoObject动态添加对象

C#给ExpandoObject动态添加属性 C#给ExpandoObject动态添加对象: 方法一: dynamic x = new ExpandoObject();x.NewProp = string.Empty; 方法二: var x = new ExpandoObject() as IDictionary<string, Object>...

深入了解Java ClassLoader、Bytecode 、ASM、cglib(II)

三、ASM 我们知道Java是静态语言,而python、ruby是动态语言,Java程序一旦写好很难在运行时更改类的行为,而python、ruby可以。 不过基于bytecode层面上我们可以做一些手脚,来使Java程序多一些灵活性和Magic,ASM就是这样一个应用广泛的开源库。 ASM is a Java bytecode manipulation...

自己画WinForm 皮肤包括默认控件

好久没来博客园,今天捣鼓到现在就是为了把之前的皮肤控件完善好, 之前也看了很多技术文章,大多数都是自己重写系统控件实现换肤,几乎没有像东日的(IrisSkin)控件一样 添加一个组件 把系统的皮肤全换掉,我曾经也是重写系统的控件,但我就喜欢瞎捣鼓,于是就开始找这方面的资料,苦于没学过底层,对windows窗口 以及消息循环机制不了解,找资料也基本上白搭了许...

Winform 自定义文本框

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading....

js怎么获取动态链式属性呢?

动态链式属性?我自己起的名字,样子就是 var data={ list:{ name:'zxf' } }var prop="list.name";console.log(data[prop]) 这样输出肯定是不行的,那应该怎么访问呢?我们知道如果prop只有一个属性值就可以了,比如var prop="list";data[list]是可以的,那么我...

Rancher容器编排

什么是Rancher   是一个开源的企业级PaaS容器管理平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。可以使用任何公有云或者私有云的Linux主机资源。Linux主机可以是虚拟机,也可以是物理机Rancher仅需要主机有CPU,内存,本地磁盘和网络资源,从Rancher的角度来说,一台云...