Rules of Hooks – React (reactjs.org)
Only Call Hooks at the Top Level
Don’t call Hooks inside loops, conditions, or nested functions. Instead, always use Hooks at the top level of your React function, before any early returns. By following this rule, you ensure that Hooks are called in the same order each time a component renders. That’s what allows React to correctly preserve the state of Hooks between multiple useState and useEffect calls. (If you’re curious, we’ll explain this in depth below.)
위 React 공식문서를 살펴보면, 반복문 조건문 안이나 nested function 안에 hook 을 호출하면 안 된다고 명시하고 있다.
무조건 React Function Top level 에서 호출해야 한다. 이 규칙을 정해야 hook 의 호출 시점이 일관됨을 보장할 수 있기 때문이다.
따라서 Hook 을
- 조건문에서 사용하고 싶다면 결과 값을 useState 와 useEffect 에서 핸들링한다.
- 반복문에서 사용하고 싶다면 Hook 에서 반복을 지원하는지 살펴보거나, 반복할 리스트를 map 으로 맵핑하여 인자로 전달한다.
'언어 > React' 카테고리의 다른 글
[React] Hook 은 사실 Closure 이다. (1) | 2023.10.16 |
---|---|
[React] 리소스 지연 로딩 (IntersectionObserver API) (0) | 2023.10.15 |
[React] debounce 최적화 (0) | 2023.10.15 |
[React] Suspense 와 React-Query 사용 시 주의사항 (0) | 2023.01.01 |