问题描述
文件: frontend/src/shared/ui/pagination.tsx:17
const totalPages = Math.max(1, Math.ceil(total / pageSize))
没有对 page 和 pageSize 做任何校验:
pageSize === 0 → Math.ceil(total / 0) = Infinity → totalPages = Infinity,"下一页"按钮永远可用
page < 0 或 page === 0 → "上一页"按钮启用,点击后 onPageChange(-1) 或 onPageChange(0)
pageSize < 0 → 产生异常的分页行为
建议修复
在组件入口处 clamp:
const safePage = Math.max(1, Math.floor(page))
const safePageSize = Math.max(1, Math.floor(pageSize))
const totalPages = Math.max(1, Math.ceil(total / safePageSize))
影响
- 严重程度: Medium
- 异常分页状态 → 用户体验损坏
问题描述
文件:
frontend/src/shared/ui/pagination.tsx:17没有对
page和pageSize做任何校验:pageSize === 0→Math.ceil(total / 0)=Infinity→totalPages = Infinity,"下一页"按钮永远可用page < 0或page === 0→ "上一页"按钮启用,点击后onPageChange(-1)或onPageChange(0)pageSize < 0→ 产生异常的分页行为建议修复
在组件入口处 clamp:
影响