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>

 

 

 问题完美解决!

如果有疑问,欢迎留言讨论!

posted @ 2022-05-09 17:36  飞翔的蜗牛~  阅读(991)  评论(2编辑  收藏  举报
Live2D