beforeDestroy 获取不到ref滚动条高度

beforeDestroy(){
        console.log('scrollTop-',this.$refs.main.scroller.scrollTop)
 
      },
  

clipboard.png

在beforeDestroy周期获取不到ref的滚动条高度 在created里面我用定时器是可以获取的,求解决方法 或者可以监听ref的滚动条高度也行,求各位大佬遇到过的来解决一下

阅读 3k
1 个回答

beforeDestroy里虽然实例还在,但是容器的高度已经为0了,所以滚动条的值也是0

不推荐使用定时器,你可以在mounted里获取高度,此时dom已经加载完成了,如果你有异步数据请求,也应该把获取高度写在拿到数据之后的钩子里

mounted里绑定滚动条的监听事件,把滚动条的高度值记录在实例上

  mounted () {
    console.log(this.$refs.main.scroller.scrollTop)
    this.$refs.main.scroller.addEventListener('scroll', this.recordScroll)
  }
  data () {
    return {
      scrollTopRecord: 0
    }
  },
  methods: {
    recordScroll () {
      this.scrollTopRecord = this.$refs.main.scroller.scrollTop
    }
  }

这样你在beforeDestroy里就可以使用容器最后的高度,记得解绑监听事件

  beforeDestroy () {
    console.log(this.scrollTopRecord)
    this.$refs.main.scroller.removeEventListener('scroll', this.recordScroll)
  }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题