修复定时器与动画回调清理不完整问题
This commit is contained in:
@@ -167,10 +167,15 @@
|
||||
- 先清理 error 级规则,再统一处理 warning;
|
||||
- 针对 hooks 规则建立最小回归测试。
|
||||
|
||||
### P2-5 定时器清理不完整(潜在内存泄漏/卸载后状态写入)
|
||||
### P2-5 定时器清理不完整(潜在内存泄漏/卸载后状态写入)【已完成】
|
||||
- 修复状态:✅ 已完成(2026-03-03)
|
||||
- 修复内容:
|
||||
- `useBlindboxIdeas` 增加统一 `useEffect` cleanup,卸载时清理所有 `timersRef`;
|
||||
- `useBlindboxDraw` 增加 confetti 停止逻辑(timeout + `requestAnimationFrame` + `confetti.reset`),并在 `handleContinue` 与 unmount 时清理;
|
||||
- 同步修正盲盒房间页与 `useBlindboxRoom` 的定时器 cleanup 方式,避免 ref 清理时机不稳定。
|
||||
- 证据:
|
||||
- `src/hooks/useBlindboxIdeas.ts:52` + `:129`(保存定时器,但无统一 cleanup)
|
||||
- `src/hooks/useBlindboxDraw.ts:25` + `:38`(定时器与动画回调未见 unmount 清理)
|
||||
- `src/hooks/useBlindboxIdeas.ts` 已新增 `timersRef` 统一清理;
|
||||
- `src/hooks/useBlindboxDraw.ts` 已新增 confetti 与动画回调销毁逻辑。
|
||||
- 影响:
|
||||
- 页面切换或快速操作下可能出现卸载后 setState、额外渲染噪音。
|
||||
- 建议:
|
||||
|
||||
Reference in New Issue
Block a user