string 형식의 데이터를 JSX문법으로 렌더링 할 때 제목, 날짜 등 한 줄짜리 string은 문제없이 출력이 된다. 그렇지만 본문의 내용이든지, 채팅할 때 줄 바꿈 처리는 어떻게 렌더링 해야 할까?
JSX문법은 \n 을 줄바꿈으로 읽지 않고 string 형식으로 그대로 출력을 한다. 불러오는 데이터 자체가 문자열이니 \n 을 줄바꿈의 표시라고 읽는것도 말이 안되는 것 같기도 ... 🧐
🍋 받아오는 데이터 형식
react에서는 수많은 데이터의 양으로 반복되는 부분을 줄이기 위해 데이터 파일을 따로 만들어 map을 사용하여 불필요한 코드를 줄여준다.
[
{
id: 1,
title: '첫번째 글',
date: '2022-01-01',
main: '새해입니다!\n모두모두 건강하세요.',
},
{
id: 2,
title: '인사드려요',
date: '2022-02-24',
main: '안녕하세요\n\n이것은 줄바꿈입니다\n헬로헬로',
},
{
id: 3,
title: '생일축하문구',
date: '2022-04-16',
main: '생\n일\n축\n하\n해',
},
];
🍋 구현 방법
띄어쓰기가 필요한 문구를 \n 을 포함한 string 형태로 받아온다면, 데이터 전체 배열의 map 안에 \n을 기준으로 split 하여 또 다른 배열을 생성하고, map을 사용하여 띄어쓰기를 구현해줄 수 있다.
배열[0] (첫번째문장) + <br/>
배열[1] (두번째문장) + <br/>
배열[2] (세번째문장) + <br/>
id값이 2인 main의 문자열로 예를 들어보겠다.
main: '안녕하세요\n\n이것은 줄바꿈입니다\n헬로헬로'
{main.split('\n').map(line => {
return (
<>
{line}
<br />
</>
);
})}
🍋 결과 화면
반응형
'Web > React & Next.js' 카테고리의 다른 글
React | 페이스북 픽셀 연결하기 (React Facebook Pixel) (1) | 2022.06.07 |
---|---|
React SEO | Sitemap과 robots.txt 생성하기 (0) | 2022.05.15 |
React 초기 세팅, CRA 세팅하기 (Router v6 / styled-component) (0) | 2022.01.05 |
React | 카테고리 필터링, 동적 라우팅 기능 (0) | 2021.11.14 |
React | API Data (json) 중복 map 사용 하기 (0) | 2021.11.14 |