• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

선생님께 질문있습니다.

21.02.04 19:09 작성 조회수 112

0

혹시 home edit delete 버튼 아랫부분에서

postDetail && postDetail.comments라고 했는데.

posetDetail.comments부분은 [] 빈배열임에도 삼항연산자에서 true로 인식해 화면에 렌더되는것같아요. 혹시 그것외에도 postDetail.comments를 사용하신 이유를 알 수 있을까요?

답변 1

답변을 작성해보세요.

0

일종의 검증입니다. 

즉. 데이터가 존재할 경우에만 그 아래를 렌더링 하라는 것입니다.

예를 들어, postDetail.date를 렌더링하라고 할 경우, 이것을 안 넣어주면 서버로 부터 데이터를 받는 데에는 당연히 시간이 걸리기에

리액트는 처음부터 빨간색 오류를 뿜으며 불만을 합니다. 

"데이터도 없는데 뭐하라는거야? type도 모르겠고~~~!!(주로 undefined(아직 정해지지 않았다) 라고 많이 나옵니다)"

그렇기에 먼저 데이터가 있는지 검증하고, 없으면 일반적으로 로딩화면(여기서는 "Hi"라고 했죠), 있으면 데이터를 렌더링 하게됩니다.

 (참고)  자바스크립트에서 undefined와 null은 다른 것입니다.(물론 비슷해보이지만요)

undefined(아직 정해지지 않았음), Null(존재하지 않음) ⇒ 타입스트크립트에서는 세부적으로 2가지 타입이 더 존재합니다.