From 29db1b75ff423e1ead67d250da0600c2a666a1a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E7=94=B7?= Date: Sun, 3 May 2026 10:35:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20FullCalendar=20getApi=20null=20=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E4=BF=9D=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit draw()/redraw()/freeze() 在组件卸载后可能被异步触发, 添加 calendar.value null 检查防止 TypeError。 Co-Authored-By: Claude Opus 4.7 --- src/pages/clazz/index.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/clazz/index.vue b/src/pages/clazz/index.vue index 56d91d9..cc32316 100644 --- a/src/pages/clazz/index.vue +++ b/src/pages/clazz/index.vue @@ -625,6 +625,7 @@ export default defineComponent({ } const redraw = () => { + if (!calendar.value) { console.debug('[clazz redraw] skip, calendar null'); return; } let events = calendar.value.getApi().getEvents(); events.forEach((event, i) => { let subsidiary_id = event.extendedProps.subsidiary_id; @@ -894,6 +895,7 @@ export default defineComponent({ } const freeze = () => { + if (!calendar.value) return; store.hanging = true; let date = calendar.value.getApi().getDate(); setKey('clazz_state', {state, date})