最近前端使用了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)
},