nezha-dash-v1/src/components/ErrorBoundary.tsx
2024-12-20 09:19:31 +08:00

37 lines
664 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