chunk-vendors.js:25979 Uncaught TypeError: Cannot read properties of null (reading 'bottom') at IntersectionObserver.c.<computed>.IntersectionObserver.root (chunk-vendors.js:26017:15)
报错截图:
ps:这个问题不好描述,找了好久,问题都没能解决,最终找到原因:
报错原因:
sticky组件创建了Observer监听,当切换页面且页面没有销毁(例如:tabbar页面),
sticky组件也没有销毁,自然beforeDestroy没有生效,导致组件仍然保持监听,所以出现Cannot read property 'bottom' of null报错。
所以我们需要手动断开监听来解决这个报错;
1 <template> 2 <view> 3 <!-- @property {Boolean} enable 是否开启吸顶功能(默认true)--> 4 <u-sticky :enable="enable" h5-nav-height="0"> 5 <view> 6 …… 7 </view> 8 </u-sticky> 9 </view> 10 </template> 11 <script> 12 export default { 13 data() { 14 return { 15 // 是否开启吸顶功能 16 enable: true 17 } 18 }, 19 // 在对应的show和hide页面生命周期中打开或关闭监听 20 onShow() { 21 this.enable= true 22 }, 23 onHide() { 24 //页面销毁时,取消监听 25 this.enable= false 26 } 27 } 28 </script>