collect-system/apps/web/src/app/error.tsx

41 lines
1.7 KiB
TypeScript
Raw Normal View History

2025-02-21 16:10:14 +08:00
/**
* -
* 功能: 捕获React Router路由层级错误并展示可视化错误信息
* :
* -
* -
* -
*/
2024-12-30 08:26:40 +08:00
import { useRouteError } from "react-router-dom";
2025-02-21 16:10:14 +08:00
/**
*
* @核心功能
* @设计模式 UI展示
* @使用示例 React Router的RouterProvider中配置errorElement={<ErrorPage/>}
*/
2024-07-11 11:00:51 +08:00
export default function ErrorPage() {
2025-02-21 16:10:14 +08:00
// 使用React Router提供的Hook获取路由错误对象
// 类型定义为any以兼容React Router不同版本的类型差异
2024-12-30 08:26:40 +08:00
const error: any = useRouteError();
2025-02-21 16:10:14 +08:00
return (
// 主容器: 基于Flex的垂直水平双居中布局
// pt-64: 顶部留白实现视觉层次结构
<div className="flex justify-center items-center pt-64">
{/* 内容区块: 采用纵向弹性布局控制内部元素间距 */}
<div className="flex flex-col gap-4">
{/* 主标题: 强调性文字样式配置 */}
<div className="text-xl font-bold text-primary">
?...
</div>
{/* 错误详情: 动态渲染错误信息,实现优雅降级策略 */}
{/* 使用可选链操作符防止未定义错误,信息优先级: statusText > message */}
<div className="text-tertiary">
{error?.statusText || error?.message}
</div>
</div>
2024-12-30 08:26:40 +08:00
</div>
2025-02-21 16:10:14 +08:00
)
2024-07-11 11:00:51 +08:00
}