123456789101112131415161718192021222324252627282930313233343536 |
- import type { ErrorInfo } from 'react';
- import React from 'react';
- import ErrorFallback from '../error-fallback';
- interface ErrorBoundaryProps {
- FallbackComponent?: any;
- }
- interface ErrorBoundaryState {
- hasError: any;
- error: any;
- errorInfo: string;
- }
- class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
- static getDerivedStateFromError(error: Error) {
- return { hasError: true, error: error, errorInfo: error.message };
- }
- state = { hasError: false, error: null, errorInfo: '' };
- componentDidCatch(error: any, errorInfo: ErrorInfo) {
- console.log(error, errorInfo);
- }
- render() {
- const { children, FallbackComponent = ErrorFallback } = this.props;
- const { error, errorInfo } = this.state;
- if (this.state.hasError) {
- return <FallbackComponent error={error} errorInfo={errorInfo} />;
- }
- return children;
- }
- }
- export default ErrorBoundary;
|