useEffect
는 상위컴포넌트부터 하위컴포넌트로까지 차례대로 실행되고난 뒤 다시 최하위컴포넌트부터 차례대로 상위컴포넌트로 올라가며 각각의 useEffect
가 실행된다.
앱에서 사용할 데이터를 비동기로 받아오는 작업을 최상위 컴포넌트인 HomeProvider
의 useEffect
에서 수행하였다. 최하위 컴포넌트는 BannerSlide
에서 context로 부터 데이터를 가져오는 커스텀 훅(예를 들어 useSomeData)을 실행한다.
하지만 useSomeData
를 실행하는 시점은 아직 HomeProvider
의 useEffect
가 실행되기 전이다. 따라서 useSomeData
의 리턴값이 없는 것이다.