From 97daaeeb361e404f5880899c2c12e9cabbba1617 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 1 Feb 2026 19:46:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=87=E6=8D=A2=E7=94=BB=E5=B8=83?= =?UTF-8?q?=E6=97=B6=E6=B8=85=E7=A9=BA=E7=8A=B6=E6=80=81=E5=B9=B6=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E5=8A=A0=E8=BD=BD=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/canvas/[id]/page.tsx | 7 ++++++- components/canvas/CanvasFileListPanel.tsx | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/canvas/[id]/page.tsx b/app/canvas/[id]/page.tsx index b2b3802..2d5bc0e 100644 --- a/app/canvas/[id]/page.tsx +++ b/app/canvas/[id]/page.tsx @@ -105,6 +105,7 @@ export default function CanvasEditorPage({ params }: PageProps) { const undo = useCanvasStore((state) => state.undo); const redo = useCanvasStore((state) => state.redo); const loadCanvas = useCanvasStore((state) => state.loadCanvas); + const clearCanvas = useCanvasStore((state) => state.clearCanvas); const getCanvasState = useCanvasStore((state) => state.getCanvasState); const addNode = useCanvasStore((state) => state.addNode); const updateNode = useCanvasStore((state) => state.updateNode); @@ -134,6 +135,10 @@ export default function CanvasEditorPage({ params }: PageProps) { useEffect(() => { const loadProject = async () => { setIsLoading(true); + + // 🆕 先清空当前画布状态,确保切换时不会显示旧数据 + clearCanvas(); + const result = await canvasService.getProject(id); if (result.success && result.data) { @@ -156,7 +161,7 @@ export default function CanvasEditorPage({ params }: PageProps) { }; loadProject(); - }, [id]); + }, [id, clearCanvas, setProject, loadCanvas]); // 自动保存逻辑 useEffect(() => { diff --git a/components/canvas/CanvasFileListPanel.tsx b/components/canvas/CanvasFileListPanel.tsx index 04104f9..23fd53d 100644 --- a/components/canvas/CanvasFileListPanel.tsx +++ b/components/canvas/CanvasFileListPanel.tsx @@ -52,7 +52,9 @@ export function CanvasFileListPanel({ currentId, onClose }: CanvasFileListPanelP onClose(); return; } + // 使用 router.push 并关闭面板,让页面组件的 useEffect 处理加载 router.push(`/canvas/${id}`); + onClose(); // 关闭文件列表面板,切换到聊天面板 }; // 删除画布