feat: error page

This commit is contained in:
hamster1963
2024-12-20 09:19:31 +08:00
parent 3633664345
commit 13915634c5
3 changed files with 68 additions and 40 deletions

View File

@@ -0,0 +1,36 @@
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