[TIL] d+36

river·2022년 4월 11일
0

💥 리덕스에서 데이터를 못 받아올 때(feat. 옵셔널 체이닝)

상세페이지에 게시글 데이터를 뿌려주다가 새로고침만 하면 데이터를 불러오지 못하는 상황에 처했다.

원래대로라면 이렇게 액션 처리하면서 들어와야 하는 데이터가

이렇게 아무 것도 받아오지 못하는 상황.
아마 초기값(initialState = [];)만 받아온 상태로 return을 먼저 할 때, initialState 안에는 title이나 frontNum같은 데이터가 아예 존재하지 않기 때문에 에러가 뜨면서 멈춰버려 액션을 실행하지 못한 것 같다...?

해결 방법 💨

  • 조건문

데이터가 없을 경우 출력할 데이터가 없도록 만들기.
사진에선 그냥 뷰도 없이 텅 빈 화면을 출력하도록 만들었지만, {post.title}같이 받아온 데이터를 넣어주는 부분들만 지워서 넣어도 될 듯?

  • 옵셔널 체이닝

https://ko.javascript.info/optional-chaining#ref-1886

데이터가 없을 경우 undefined를 반환하도록 만들어 일단 렌더링이 완료되도록 해주기.

=> 어느 쪽을 사용하던 기본적인 뷰가 뜨도록 만들어 주는 건 가능하지만, 옵셔널 체이닝을 사용하면 코드가 더 간결해져서 좋은 것 같다.

profile
가보자고

3개의 댓글

comment-user-thumbnail
2022년 4월 11일

post?. 좋은 정보 감사합니다~!

2개의 답글