fix(frontend): 修复已结束运行打不开日志的问题

StrictMode 的 effect 清理会取消挂载时排队的 rAF,但没有把句柄归零;已结束的 run 在挂载时就处于 complete 状态,后续 ingest 看到「还有帧在排队」便不再安排渲染,日志一直停在「等待日志输出...」。取消后把 frameRef 归零,并在 e2e 增加「运行结束后重新打开日志」的回放断言。
This commit is contained in:
2026-11-02 23:19:07 +08:00
parent d3f0f57f6d
commit 608872bf06
2 changed files with 11 additions and 0 deletions
+4
View File
@@ -409,6 +409,10 @@ function RunLogOutput({
return () => {
if (frameRef.current) {
cancelAnimationFrame(frameRef.current)
// StrictMode 会「挂载 → 清理 → 再挂载」,取消后必须把句柄归零,
// 否则下一次 scheduleRender 会误以为还有帧在排队而不再安排渲染,
// 已结束的 run(complete 在首帧就为 true)会一直停在「等待日志输出」。
frameRef.current = 0
}
}
}, [])