"Error: At least one element required."报错解决

最近前端使用了element-resize-detector来监控组件尺寸变化,我的用法如下:

    getContainerkWidth () {
      const erd = elementResizeDetectorMaker()
      this.$nextTick(() => {
        erd.listenTo(this.$refs.container, (element) => {
          this.containerWidth = element.offsetWidth
        })
      })
    },

但是,浏览器的控制台出现了这个错误:

[Vue warn]: Error in nextTick: "Error: At least one element required."

经过检查是因为组件挂载时在window上添加了监听事件,但是没有移除。

  mounted () {
    this.getContainerkWidth()
    window.addEventListener('resize', this.getContainerkWidth)
  },

加上以下这段代码,在组件销毁之前移除监听事件,就可以解决了。

  beforeDestroy () {
    window.removeEventListener('resize', this.getContainerkWidth)
  },
posted @ 2022-03-22 18:05  年迈的魔法师  阅读(5291)  评论(0编辑  收藏  举报