STOVE-Milk/steam-clone

[FE / nextjs] 컴포넌트에서 && 없이 서버 response값 사용하기

Closed this issue · 0 comments

문제

다음과 같이 스토어에서 가져온 모든 값을 사용할 때 &&을 붙여야해서 생산성과 코드 가독성이 떨어진다.
스크린샷 2022-01-27 오후 5 57 26

발생 원인

유틸 리듀서에서 data의 타입이 T(현재 선언하지 않고, 나중에 지정할 수 있는 타입) 또는 null로 지정되어 있기 때문에 data를 nullable하다고 인식하여, 위의 사진에서 && 처리를 하지 않으면 '객체가 null인 것 같습니다' 라는 오류를 뱉는다.
스크린샷 2022-01-27 오후 5 58 27

해결 방법

  1. data의 타입을 T로 선언한다.
    스크린샷 2022-01-27 오후 6 00 23

  2. 기존의 에러 발생 시 data에 null을 넣어주던 부분을 initialData로 바꾼다. 이렇게 한 이유는 이전에 발생한 load() 이슈와 같다.
    스크린샷 2022-01-27 오후 6 00 55

  3. 2번에서 asyncState 정의가 바뀌었으니 동일하게 바꿔준다.
    스크린샷 2022-01-27 오후 6 03 09