해결된 질문
작성
·
26
0
안녕하세요 선생님. 강의 너무 잘 듣고 있습니다 !!
스토리지 강의 끝 부분 듣다가 질문이 생겨 글 남깁니다.
if (isLoading) {
return <div>데이터 로딩중입니다...</div>;
}
위와 같이 작성된 if문은 isLoading이 false가 될 때까지 기다려주나요?
if문이 실행되었을 당시에 isLoading이 true여서 데이터로딩중이라는 페이지를 반환한 후에도 여전히 로딩이 끝나지 않았다면,
아래 컴포넌트들을 렌더링하는 리턴문을 실행하였을 때 에러가 발생하지는 않나요?
벌써 강의 막바지네요. 선생님의 좋은 강의 덕분에 여기까지 올 수 있었던 것 같습니다.
감사합니다 :)
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨
질문 하시기 전에 꼭 확인해주세요
- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)
- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)
- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)
질문 하실때 꼭 확인하세요
- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)
- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)
- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)
- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요
- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
답변 1
0
안녕하세요 이정환입니다.
엇 아뇨 "기다려준다" 라는 표현보다는 "isLoading State의 값에 변화에 따라 App 컴포넌트의 리턴값이 달라진다"로 보시는게 더 정확할 것 같아요
isLoading State의 변화에 따라 App 컴포넌트의 동작을 정의해보자면 이렇습니다.
초기화 단계입니다. isLoading State와 data State가 생성되고 초기값은 각각 false, []로 설정됩니다. 이때의 App 컴포넌트의 반환값은 조건문에 따라 "로딩중입니다"가 됩니다.
useEffect에서 localStroage로 부터 데이터를 불러와 data State에 저장합니다. 그와 동시에 isLoaidng State의 값도 true로 변경됩니다. 그 결과 state의 변화로 인해 App 컴포넌트가 다시 실행 즉, 리렌더링됩니다. 이때 isLoading State의 값이 true이므로 조건문에 따라 앱 컴포넌트의 반환값은 실제 화면이 됩니다.
아아 기본적인 걸 생각을 못 했었네요. 답변 감사합니다 😁