반응형
React에서 리스트를 받아올 때 자주쓰는 구조로 state.map()을 사용하다 발생한 오류를 해결하지 못해 직접 찾아보고 찾은 답을 정리한다.
왜....도대체 왜..안되는걸까?? 한참 고민하다 발견한 답
React 는 렌더링이 화면에 커밋 된 후에야 모든 효과를 실행하기 때문이다. 즉 React는 return에서 state.map(...)을 반복실행할 때 첫 턴에 데이터가 아직 안들어와도 렌더링이 실행되며 당연히 그 데이터는 undefined로 정의되어 오류가 나는 것
즉 첫번째 값이 없기 때문에 생기는 오류이다.
해결방법은 2가지이다.
1. &&
state && state.map()구조로 사용하기.
JavaScript에서 true && expression은 항상 expression으로 실행되고 false && expression은 항상 false로 실행된다. 따라서 조건이 참이면 && 바로 뒤의 요소가 출력에 나타난다. 거짓이면 React는 무시하고 건너뛴다.
2. useState([ ])
useState([ ]) 처음 값에 값이 없다는 걸 입력해주면 오류가 나지 않는다.
반응형
'develop > react' 카테고리의 다른 글
[REACT] Font 적용하기 (0) | 2021.09.05 |
---|---|
[REACT] React Router를 이용하여 페이지 전환 하기 (0) | 2021.08.31 |
[REACT] Firebase 연동 및 사용하기 [1] (0) | 2021.08.29 |
[REACT] REACT-Icons 사용하기 (0) | 2021.08.26 |
[REACT] Uncaught Error: Objects are not --- valid as a React child (found: object with keys {current}). If you meant to render a collection of children, use an array instead. (0) | 2021.08.25 |
댓글