Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- next #middleware
- EC2
- dotenv
- utf8mb4
- 프리티어
- Node
- 코드정렬
- 리액트코드정렬
- reacts3
- 코딩테스트
- 프로그래머스
- s3확장자
- prettier
- 제일 작은 수 제거하기
- 리액트
- .env
- 부족한 금액 계산하기
- 자동완성방지
- 커밋 한번에
- react
- interactive_timeout
- 자연수 뒤집어 배열로 만들기
- max_allowed_packet
- elasticIP
- MySQL
- useReducer
- axios
- AWS
- vscode
- express
Archives
- Today
- Total
Sungtt
배열을 map()으로 렌더링해줄 때 오류 본문
오류내용 : Array.prototype.map() expects a return value from arrow function
렌더링하려던 배열의 콘솔을 찍어보면 배열안에 객체가 들어있는 방식이었다.
나는 화살표함수를 쓰면서 버릇처럼 () => {} 의 양식을 통해 작성하고있었다. 작성하던 코드는 아래와 같다.
{viewContent.map((i,index)=>{
<div key={index}>
<h2>{i.title}</h2>
<div>{i.content}</div>
</div>
})}
그런데 오류가 계속 나길래 확인해보니, 화살표 함수를 통해 정확히 return을 받기위해선 두가지 방법이 있었다.
첫번째 방법은 중괄호내부에서 return을 명시해주는 방법
두번째 방법은 실행함수를 중괄호 대신 소괄호로 감싸는 방법이 있다.
const arr = [1,2,3];
console.log(arr.map((i)=> {i + 3})); // => [ undefined, undefined, undefined ]
console.log(arr.map((i)=> i + 3)); // => 4,5,6
console.log(arr.map((i)=> {return i + 3})); // => 4,5,6
console.log(arr.map((i)=> (i + 3))); // => 4,5,6
3번째줄 코드의 경우에는 return값이 없는데도 정상적으로 출력되고있다.
그것은 화살표함수의 내용이 return뿐일때는 return과 중괄호까지 생략할 수 있기때문이다.
위의 내용을 토대로 코드를 수정하여서 해결되었다.
//화살표함수를 소괄호로 감싸기
{viewContent.map((i,index)=>(
<div key={index}>
<h2>{i.title}</h2>
<div>{i.content}</div>
</div>
))}
//화살표함수를 중괄호, return()으로 감싸기
{viewContent.map((i,index)=>{
return (
<div key={index}>
<h2>{i.title}</h2>
<div>{i.content}</div>
</div>
);
})}
'React' 카테고리의 다른 글
리액트, MySQL로 아주 쉽게 게시판 만들기 - 3 [React, MySQL, express, axios] (0) | 2022.02.01 |
---|---|
리액트, MySQL로 아주 쉽게 게시판 만들기 - 2 [React, MySQL, express, axios] (0) | 2022.01.31 |
리액트, MySQL로 아주 쉽게 게시판 만들기 - 1 [React, MySQL, express, axios] (0) | 2022.01.31 |
게시판 구현 중 리액트 리렌더링 방지! 노란선 (0) | 2022.01.30 |
useState 와 useRef 맛보기 (0) | 2022.01.24 |
Comments