前言
平时在使用uview进行开发项目的时候,在H5下面用了sticky组件的时候,我们会看到控制台会打印Cannot read properties of null (reading 'bottom'),这样的字样。作为程序员,看到这些报错,心里多多少少会有一点不舒服。
出现原因
sticky组件创建了Observer监听,当切换页面且页面没有销毁时,导致组件仍然保持监听,所有出现了报错。他的开关就在于enable这个关键字。
解决办法
<template>
<view>
<u-sticky :enable="enable">
</u-sticky>
</view>
</template>
<script>
export default {
data() {
return {
enable: true
}
},
// 在对应的show和hide页面生命周期中打开或关闭监听
onShow() {
this.enable= true
},
onHide() {
this.enable= false
}
}
</script>