강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Cola님의 프로필 이미지
Cola

작성한 질문수

만들면서 배우는 리액트 : 기초

23 로컬스토리지에 데이터 싱크하기 2

jsonLocalStorage.getItem("favorites") || []

작성

·

192

2

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

jsonLocalStorage.getItem("favorites") || []

에서는 []가 없으면 초기값이 없어서 에러가 났었는데

jsonLocalStorage.getItem("counter") 도 에러가 날까?

해서 궁금해서 LocaStroage를 비우고 해봤더니

에러가 나지 않더라구요 이유가 궁금합니다.

답변 1

0

진유림님의 프로필 이미지
진유림
지식공유자

좋은 의문입니다~

에러는 localStorage가 아닌 favorites의 기본값이 없어서 난 타입에러예요.


const [favorites, setFavorites] = React.useState(

          jsonLocalStorage.getItem("favorites") || []

        );

 

에서

favorites[0]을 한다는건 favorites를 배열로 가정하고 첫 번째 인자를 꺼내온거죠.

그래서 favorites가 배열이 아니라면 바로 에러가 날거예요.

 

const [counter, setCounter] = React.useState(

          jsonLocalStorage.getItem("counter")

        );

 

counter같은 경우는 타입이 달라서 생길 에러가 없어서 괜찮았던 것입니다.

 

 

Cola님의 프로필 이미지
Cola
질문자

counter는 기본값이 없어도 되는건가요?

진유림님의 프로필 이미지
진유림
지식공유자

모든 state는 기본값이 있어도 없어도 되어요.

다만 배열 타입을 가정하고 만든 state에서 에러를 내지 않기 위해 기본값으로 빈 배열을 할당해준것입니다.

Cola님의 프로필 이미지
Cola

작성한 질문수

질문하기