fix: 警告 onUnmounted is called when there is no active component instance to be associated with
This commit is contained in:
@@ -1200,23 +1200,21 @@ const handleMouseUp = () => {
|
|||||||
document.removeEventListener('mouseup', handleMouseUp)
|
document.removeEventListener('mouseup', handleMouseUp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ResizeObserver 引用(在组件卸载时清理)
|
||||||
|
let nameResizeObserver: ResizeObserver | null = null
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
reportBarPosition()
|
reportBarPosition()
|
||||||
|
|
||||||
// 使用 ResizeObserver 监听任务名称宽度变化
|
// 使用 ResizeObserver 监听任务名称宽度变化
|
||||||
if (taskBarNameRef.value) {
|
if (taskBarNameRef.value) {
|
||||||
const nameResizeObserver = new ResizeObserver((entries) => {
|
nameResizeObserver = new ResizeObserver((entries) => {
|
||||||
for (const entry of entries) {
|
for (const entry of entries) {
|
||||||
nameTextWidth.value = entry.contentRect.width
|
nameTextWidth.value = entry.contentRect.width
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
nameResizeObserver.observe(taskBarNameRef.value)
|
nameResizeObserver.observe(taskBarNameRef.value)
|
||||||
|
|
||||||
// 组件卸载时清理
|
|
||||||
onUnmounted(() => {
|
|
||||||
nameResizeObserver.disconnect()
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1245,6 +1243,12 @@ onMounted(() => {
|
|||||||
|
|
||||||
// 清理函数
|
// 清理函数
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
|
// 清理 ResizeObserver
|
||||||
|
if (nameResizeObserver) {
|
||||||
|
nameResizeObserver.disconnect()
|
||||||
|
nameResizeObserver = null
|
||||||
|
}
|
||||||
|
|
||||||
window.removeEventListener('timeline-scale-updated', handleTimelineScaleUpdate)
|
window.removeEventListener('timeline-scale-updated', handleTimelineScaleUpdate)
|
||||||
window.removeEventListener('timeline-force-recalculate', handleForceRecalculate)
|
window.removeEventListener('timeline-force-recalculate', handleForceRecalculate)
|
||||||
window.removeEventListener('close-all-taskbar-menus', closeContextMenu)
|
window.removeEventListener('close-all-taskbar-menus', closeContextMenu)
|
||||||
|
|||||||
Reference in New Issue
Block a user