refactor(products): VideoPlayer 改用 useVideoPlayer Hook 消除重复代码(199→123行, -38%) #1163
Reference in New Issue
Block a user
Delete Branch "refactor/video-player-hook"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
重构内容
将
VideoPlayer组件中重复的播放控制逻辑,替换为已有的useVideoPlayerHook,消除代码重复。变更
useVideoPlayerHook 统一管理播放逻辑收益
🚀 预览环境已部署
代码审查结果 - PR #1163
⚠️ 问题(1个需要修改)
useVideoPlayerHook 调用缺少参数,导致状态与 Props 不同步。productprop 中获取videoUrl和duration,但useVideoPlayerHook 在调用时未接收任何参数。Hook 内部管理的duration、currentTime、isPlaying等状态依赖于视频源。当父组件传入不同的product时,由于 Hook 未接收到新的参数,它无法感知到视频源的变化,从而不会重置或更新内部状态。product或必要的属性(如videoUrl和product.duration)作为参数传递给useVideoPlayer,例如:useVideoPlayer({ videoUrl: product.videoUrl, initialDuration: product.duration }),并在 Hook 内部依据这些参数的变化重置状态。💡 建议(1个可选)
formatTime对边界值的处理。duration || product.duration作为兜底逻辑。如果duration为 0(例如视频正在加载中但元数据尚未就绪,且product.duration也为 0),formatTime应该能正确处理 0 或 NaN 的情况,避免显示 "NaN:NaN" 或崩溃。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能无明显问题
🤖 由 AI 代码审查机器人自动生成 | 2026-07-29 14:33:04 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1163 已关闭或合并,对应的预览环境已被清理。