Files
nezha-dash-v1/src/components/ErrorBoundary.tsx
T
2025-12-28 18:05:02 +08:00

42 lines
668 B
TypeScript

import React from "react";
import ErrorPage from "../pages/ErrorPage";
interface Props {
children: React.ReactNode;
}
interface State {
hasError: boolean;
error?: Error;
}
class ErrorBoundary extends React.Component<Props, State> {
constructor(props: Props) {
super(props);
this.state = { hasError: false };
}
static getDerivedStateFromError(error: Error): State {
return {
hasError: true,
error,
};
}
render() {
if (this.state.hasError) {
return (
<ErrorPage
code={500}
message={this.state.error?.message || "应用程序发生错误"}
/>
);
}
return this.props.children;
}
}
export default ErrorBoundary;