hook은 왜 조건문 내에서 실행하면 안될까?
- 컴포넌트의 상태값들은 컴포넌트를 키로 하는 배열에 순서대로 저장된다.
- hook을 조건문이나 일반 자바스크립트 함수 내부에서 사용하게 되면, 맨 처음 함수가 실행되었을 때 저장되었던 순서와 맞지 않게 되어 잘못된 상태 참조 가능.
- 따라서 반복문이나 조건문 안에 hook을 사용하려고 하면 에러가 난다.
useState('Mary') // 1. name state 변수를 읽습니다. (인자는 무시됩니다)
// useEffect(persistForm) // 🔴 Hook을 건너뛰었습니다!
useState('Poppins') // 🔴 2 (3이었던). surname state 변수를 읽는 데 실패했습니다.
useEffect(updateTitle) // 🔴 3 (4였던). 제목을 업데이트하기 위한 effect가 대체되는 데 실패했습니다.