본문 바로가기

IT∙테크∙프로그래밍

Hooks can only be called inside the body of a function component. 이 에러는 왜 발생하나요

질문

"Hooks can only be called inside the body of a function component." 이 에러는 왜 발생하나요?

베스트 답변

작성자: 경험 많은 개발자  

이 에러는 리액트 훅을 함수 컴포넌트나 커스텀 훅 외부에서 호출했을 때 발생합니다. 리액트 훅은 반드시 함수 컴포넌트의 최상위 레벨에서만 사용되어야 하며, 반복문, 조건문, 중첩된 함수 내에서는 사용할 수 없습니다. 에러 해결을 위해 훅 호출 부분을 함수 컴포넌트의 최상위로 옮겨보세요.

다른 답변

작성자: 도깨비 개발자

이 문제는 때때로 개발자가 클래스 컴포넌트 내에서 훅을 사용하려고 할 때도 발생합니다. 리액트 훅은 함수 컴포넌트 전용이기 때문에, 클래스 컴포넌트에서는 사용할 수 없어요. 함수 컴포넌트로 전환하거나, 필요한 로직을 클래스 컴포넌트 방식으로 재구성해보세요.

반응형