에러가 안나는데 동작을 안하는 이유 - () VS {}

2024. 8. 31. 22:55· Front-end/JavaScript

 

 

벌써 몇 번을 이 문제를 가지고 시간낭비를 해놓고서 또 삽질을 해버린 삽질 전문가...

 

{expenses.map(({ date, desc, amount, payer }) => {
  <tr>
    <td>{date}</td>
    <td>{desc}</td>
    <td>{payer}</td>
    <td>{parseInt(amount)}원</td>
  </tr>;
})}

 

아무리봐도 코드에 문제도 없고 콘솔에 찍어봐도 깨끗한데 동작이 되질 않는다.

입력한 값을 콘솔로 찍어보면 나오는데 저장된 상태를 불러오려고 하니 undefined가 반환되서 상태관리를 잘못했나? 싶어

다른 곳에서 한참 시간을 낭비했다. 

 

이유는?

간단했다. 냅다 {} 를 사용해버려서 생긴 문제. ()로 바꿔주니 간단하게 해결됐다. 

 

이 둘의 차이를 정리해보자.

 

{ } 

{expenses.map(({ date, desc, amount, payer }) => {
  return (
    <tr>
      <td>{date}</td>
      <td>{desc}</td>
      <td>{payer}</td>
      <td>{parseInt(amount)}원</td>
    </tr>
  );
})}

  • JavaScript 코드 블록 또는 표현식을 의미한다.
  • { }를 사용하면 return 키워드를 사용하여 JSX 요소를 반환해야한다.
  • 그렇지 않으면 undefined를 반환하게 되고 아무것도 렌더링 되지 않는다.

 

( )

{expenses.map(({ date, desc, amount, payer }) => (
  <tr>
    <td>{date}</td>
    <td>{desc}</td>
    <td>{payer}</td>
    <td>{parseInt(amount)}원</td>
  </tr>
))}
  • 화살표 함수 내에서 사용하면 그 안의 표현식이 암시적으로 반환된다.
  • JSX 안에서 사용하면 자동으로 반환되므로 return 키워드를 명시할 필요가 없다.

 

결국 데이터가 테이블에 렌더링 되지 않았던 이유는 { }를 사용하고서 return 키워드를 생략했기 때문이었다. 

간결하게 사용하기 위해 ( )로 바꿔주고 문제는 해결했다. 

 

다른 사람들은 이런 문제로 소중한 30분의 시간을 낭비하지 않길 바라며... ㅎㅎ

저작자표시 (새창열림)

'Front-end > JavaScript' 카테고리의 다른 글

[JS] 표준 내장 객체  (1) 2023.11.28
[JS] 자바스크립트 라이브러리 - Swiper로 슬라이드 구현하기  (0) 2023.11.24
[JS] 자바스크립트 라이브러리 - GSAP로 애니메이션 처리하기  (0) 2023.11.15
[JS] 호이스팅(Hoisting) 이란?  (0) 2023.02.13
[JS] 비동기 - callback / Promise / async · await  (1) 2023.01.16
'Front-end/JavaScript' 카테고리의 다른 글
  • [JS] 표준 내장 객체
  • [JS] 자바스크립트 라이브러리 - Swiper로 슬라이드 구현하기
  • [JS] 자바스크립트 라이브러리 - GSAP로 애니메이션 처리하기
  • [JS] 호이스팅(Hoisting) 이란?
개발중인제이
개발중인제이
개발중인제이
제이로그
개발중인제이
전체
오늘
어제
  • 분류 전체보기 (100)
    • 기록 (6)
      • 회고 (1)
      • TIL (4)
      • 일상 (0)
      • 리뷰 (1)
    • Web (4)
    • Front-end (81)
      • HTML & CSS (4)
      • JavaScript (9)
      • 모던자바스크립트 (14)
      • React (21)
      • Next (6)
      • TypeScript (11)
      • git & github (2)
      • etc (14)
      • 프로젝트 (0)
    • Back-end (0)
    • 알고리즘 & 자료구조 (0)
    • 패스트캠퍼스 (8)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 글쓰기
  • 관리

공지사항

인기 글

최근 글

hELLO · Designed By 정상우.v4.2.2
개발중인제이
에러가 안나는데 동작을 안하는 이유 - () VS {}
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.