Nerd
Nerd
Nerd
전체 방문자
오늘
어제
  • 분류 전체보기 (439)
    • Today I Learned (333)
    • 주간회고 (8)
    • FrontEnd (5)
    • ErrorNote (7)
    • 자바스크립트 (24)
    • 알고리즘 (13)
    • html과 css (21)
    • 토이프로젝트 (5)
    • React-Native (1)
    • React (13)
    • node (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리액트
  • 선언적 프로그래밍
  • 코드숨
  • 3FS
  • package-lcok.json
  • 절차지향적 프로그래밍
  • Today I Learned
  • pacakge.json
  • npm ci
  • JSX
  • 파이썬기초
  • npm i
  • 값의 할당 및 재할당
  • 주간회고
  • ErrorNote
  • 에러노트
  • 메타인지
  • 명령적 프로그래밍
  • wil
  • 토이프로젝트
  • React
  • 토이 프로젝트
  • 리액트 훅
  • 파이썬 기초
  • Redux
  • TIL
  • 데이터 타입
  • 자바스크립트
  • 모던 자바스크립트
  • 리덕스 툴킷

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Nerd

Nerd

ErrorNote

ErrorNote] Invalid Hook Call Error

2021. 11. 12. 23:37

원인 1) Mismatching Versions of React and React DOM

리액트 돔의 버전이 훅을 16.8.0보다 낮을 때 에러가 뜰 수 있습니다.

프로젝트를 어느 정도 진행하다 Invalid Hook Call Error가 뜬다면

보통은 Invalid Hook Call Error가 버전 때문에 나오는 에러는 아니지만

혹시 모르니 package.json에서 한번 확인해보시는게 좋습니다.

원인 2) Breaking the Rules of Hooks

Hooks를 호출 할 때 함수형 컴포넌트의 최상위 부분에서 호출해야 합니다.

총 3가지의 경우가 존재하는데 아래에서 예시를 살펴보겠습니다.

//1. 클래스형 컴포넌트안에서 호출한 경우
class example extends React.Component {
  render() {
    useEffect(() => {})
  }
}

//2. event handler 안에서 호출한 경우
function example() {
  function handleEvent() {
    const err = useContext(...Context);
  }
}

//3. useMemo, useReducer, useEffect에 전달 된 함수 내에서 호출하는 경우
function example() {
  const err = useMemo(() => {
    const err2 = useContext(...Context);
    return ...;
  });
}

위와 같이 Hook을 호출했다면 에러가 발생할 수 있습니다.

하지만 위와 같이 Hook을 호출하지 않았는데 에러가 발생하면 원인 3일 가능성이 매우 높습니다.

원인 3) Duplicate React

이 경우 npm ls react를 통해서 하나 이상의 react가 존재하는지 확인해야 합니다.

만약 하나 이상의 react가 존재하지 않고 원인 1과 원인 2도 해당하지 않는다면

상위 폴더에서 npm ls react를 통해 한번 더 확인하시면 됩니다.

'ErrorNote' 카테고리의 다른 글

NestJs] (git) cannot add to the index -missing -add option  (0) 2022.01.26
ErrorNote] Heroku remote rejected 해결  (0) 2021.11.12
ErrorNote]Unknown column '' in 'field list'(Sequelize)  (0) 2021.10.10
ErrorNote] 이미지가 렌더링 되지 않는 현상  (0) 2021.08.29
ErrorNote] 리액트&리덕스 토큰이 정상적으로 들어오지 않는 현상  (0) 2021.08.17
    'ErrorNote' 카테고리의 다른 글
    • NestJs] (git) cannot add to the index -missing -add option
    • ErrorNote] Heroku remote rejected 해결
    • ErrorNote]Unknown column '' in 'field list'(Sequelize)
    • ErrorNote] 이미지가 렌더링 되지 않는 현상
    Nerd
    Nerd
    꾸준히 열심히 지속적으로 하겠습니다!

    티스토리툴바