From bc18bf170e29f6d85bbc81735cb00a67dd71d333 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 24 Aug 2026 15:08:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=B4=A0=E6=9D=90/=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=8F=98=E5=8C=96=E6=97=B6=E8=87=AA=E5=8A=A8=E6=B8=85=E9=99=A4?= =?UTF-8?q?=20previewTaskId=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E8=BF=87=E6=9C=9F=E9=A2=84=E8=A7=88=E4=BA=A7=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AI Code Review 指出:用户 Step6 生成预览后若返回修改素材或模板, previewTaskId 仍保留会导致 Step7 复用过期产物。 新增 useEffect:previewAssetIds 或 selectedTemplate 变化时 自动 setPreviewTaskId(null),确保 confirmGeneration 只在 预览产物与当前配置一致时才被调用。 --- apps/web/src/pages/generate/GeneratePage.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/web/src/pages/generate/GeneratePage.tsx b/apps/web/src/pages/generate/GeneratePage.tsx index 57df9d2f5..ac516327b 100644 --- a/apps/web/src/pages/generate/GeneratePage.tsx +++ b/apps/web/src/pages/generate/GeneratePage.tsx @@ -9,7 +9,7 @@ * - 标题样式通过 CSS 层实时叠加,所见即所得 * - 最终成片仍走后端 FFmpeg 渲染(Step7 确认生成) */ -import React, { useMemo } from "react" +import React, { useMemo, useEffect } from "react" import { Modal, message } from "antd" import { useNavigate } from "react-router-dom" import type { VoiceClone } from "@/api/voice-clone" @@ -101,6 +101,11 @@ const GeneratePage: React.FC = () => { () => (materialMode === "auto" ? smartSelectedIds : selectedMaterials), [materialMode, smartSelectedIds, selectedMaterials], ) + // 素材或模板变化时,清除旧的 previewTaskId,防止 Step7 复用过期预览产物 + useEffect(() => { + setPreviewTaskId(null) + }, [previewAssetIds, selectedTemplate, setPreviewTaskId]) + const previewAssetsEnabled = currentStep >= 4 && previewAssetIds.length > 0 const { assets: previewAssets,