mirror of
https://github.com/woodchen-ink/nezha-dash-v1.git
synced 2025-07-19 01:51:54 +08:00
37 lines
664 B
TypeScript
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
|