-
import React, { Component } from "react";
export default class ErrorBoundary extends Component {
state = { error : null };
// 클래스 컴포넌트의 생명주기에 따라 호출되는 구체적 메서드
static getDerivedStateFromError(error) {
return { error };
}
resetError = () => {
this.setState({ error: null });
};
render() {
const { error } = this.state;
const { children, fallback } = this.props;
if (error) return <fallback error={error} /> || <></>;
return children;
}
}
- 오류 경계 컴포넌트를 만드는 유일한 방법은 아직 클래스 컴포넌트 사용
- 클래스 컴포넌트
- 오류 발생하면
state.error
설정
- 오류가 있으면
fallback 컴포넌트
렌더링
- 다른 컴포넌트에 합성해서, 트리에서 발생하는 오류를 포획하고
fallback 컴포넌트
렌더링