인프런 커뮤니티 질문&답변

애플망고님의 프로필 이미지
애플망고

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

ERROR Invalid hook call. Hooks can only be called inside of the body of a function component.

작성

·

744

0

안녕하세요, react 5 -> 6으로 바껴서 navigate 등 문법을 바 꾸고 디비에 저장된 아이디와 패스워드로 로그인 하려하는데 계쏙 아래와 같은 에러가 발생합니다. 스크린샷 2023-07-23 오후 10.18.52.png스크린샷 2023-07-23 오후 10.19.06.png스크린샷 2023-07-23 오후 10.19.16.png스크린샷 2023-07-23 오후 10.17.11.png스크린샷 2023-07-23 오후 10.17.28.png

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.
에러 메시지를 보면 “Invalid hook call. Hooks can only be called inside of the body of a function component.” 라고 나옵니다. 이 오류는 React의 Hook을 잘못 사용했을 때 발생하는 것입니다.

React Hook은 함수형 컴포넌트 내에서만 사용되어야 합니다. 클래스형 컴포넌트에서는 사용할 수 없습니다. 그러므로 오류가 발생하는 것 같네요.
navigate 등의 문법 변화는 React Router 버전 업데이트에 따라 발생한 것일 수 있습니다. 문법 변경으로 인해 해당 부분을 수정해야 할 수도 있겠죠.

해결 방법은 아래와 같습니다.
- 해당 컴포넌트를 함수형 컴포넌트로 변환해야 합니다. 클래스형 컴포넌트에서 훅을 사용할 수 없기 때문입니다.
- React Router 등의 라이브러리 버전을 확인하고 필요한 부분을 업데이트 해주세요. 버전 변경으로 인한 문법 변화가 발생할 수 있으니 참고해주세요.

해당 방법으로 해결되지 않는다면, 코드를 더 자세히 살펴봐야 할 것 같습니다. 코드에 어떤 부분이 올바르지 않게 사용되었는지 확인해보세요.
더 자세한 도움이 필요하다면, 코드와 에러 메시지를 제공해주시면 더 정확한 도움을 드릴 수 있을 것 같아요.

애플망고님의 프로필 이미지
애플망고

작성한 질문수

질문하기