2
0

ErrorPage.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import React from 'react';
  2. import { useRouteError, useNavigate } from 'react-router';
  3. import { Alert, Button } from 'antd';
  4. export const ErrorPage = () => {
  5. const navigate = useNavigate();
  6. const error = useRouteError() as any;
  7. const errorMessage = error?.statusText || error?.message || '未知错误';
  8. return (
  9. <div className="flex flex-col items-center justify-center flex-grow p-4"
  10. >
  11. <div className="max-w-3xl w-full">
  12. <h1 className="text-2xl font-bold mb-4">发生错误</h1>
  13. <Alert
  14. type="error"
  15. message={error?.message || '未知错误'}
  16. description={
  17. error?.stack ? (
  18. <pre className="text-xs overflow-auto p-2 bg-gray-100 dark:bg-gray-800 rounded">
  19. {error.stack}
  20. </pre>
  21. ) : null
  22. }
  23. className="mb-4"
  24. />
  25. <div className="flex gap-4">
  26. <Button
  27. type="primary"
  28. onClick={() => navigate(0)}
  29. >
  30. 重新加载
  31. </Button>
  32. <Button
  33. onClick={() => navigate('/admin')}
  34. >
  35. 返回首页
  36. </Button>
  37. </div>
  38. </div>
  39. </div>
  40. );
  41. };