해결된 질문
작성
·
233
0
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨
질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)
- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)
- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)
질문 하실때 꼭 확인하세요
- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)
- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)
- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)
- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요
- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. 트릴님 질문에 대한 답변을 드리겠습니다.
기존 React에서 에러 바운더리를 사용하는 방식은, 자식 컴포넌트 중에서 에러가 발생할 경우 전체 애플리케이션이 중단되는 것을 방지하기 위해 특정 영역을 감싸 에러가 발생할 때 대체 UI를 보여주도록 하는 방법입니다. Next.js에서 이와 유사한 방식으로 컴포넌트 단위 에러 처리를 하려면 역시 에러 바운더리를 사용할 수 있습니다. 이는 React의 기능이기 때문에 Next.js에서도 동일하게 적용이 가능합니다.
에러 바운더리를 사용할 때는 주로 다음과 같은 형태로 구현합니다:
class ErrorBoundary extends React.Component {
constructor(props) {
super(props);
this.state = { hasError: false };
}
static getDerivedStateFromError(error) {
return { hasError: true };
}
componentDidCatch(error, info) {
// 오류 로깅 서비스에 에러를 전달할 수 있습니다.
console.log(error, info);
}
render() {
if (this.state.hasError) {
return <h1>Something went wrong.</h1>;
}
return this.props.children;
}
}
이 코드를 사용하여 Next.js 프로젝트에서도 오류 처리를 할 수 있습니다. 컴포넌트를 원하는 에러 바운더리로 감싸주시면 됩니다.
관련하여 유사한 질문이 답변된 게시물을 확인하실 수 있습니다:
- React 에러 바운더리 사용 시 주의 사항이라는 제목의 게시물을 참조해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.