인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

조은수님의 프로필 이미지
조은수

작성한 질문수

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

8.5) Read - 투두리스트 렌더링하기

DiaryItem 컴포넌트 props 질문이요!

해결된 질문

작성

·

277

0

리액트에서 배열 사용하기 1-리스트 렌더링 강의에서 질문있습니다.

DiaryItem 컴포넌트에서 diaryList에있는 author, content.. 등 정보를 사용하려면 props 로 내려받아야 하는걸로 알고 있는데..

DiaryList 컴포넌트에서는 key 값만 적혀있는데 따로 map을 사용하면 props가 DiaryItem까지 전달되는건가요?

{diaryList.map((it) => (
      <DiaryItem key={it.id}{...it} />

 

const DiaryItem = ({
  author,
  content,
  created_data,
  emotion,
  id,
}) => {
return
}
 
import DiaryItem from "./DiaryItem";

const DiaryList = ({ diaryList }) => {
  console.log(diaryList);
  return (
    <div className="DiaryList">
      <h2> 일기 리스트</h2>
      <h4>{diaryList.length}개의 일기가 있습니다.</h4>
      <div>
    {diaryList.map((it) => (
      <DiaryItem key={it.id}{...it} />
    ))}
    </div>
    </div>
  );
};

export default DiaryList;

답변 1

0

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 이정환입니다.

아래 코드에서 {...it} 의 역할이 바로 it 이라는 객체에 저장된 모든 프로퍼티를 다 Props로 전달하는 역할입니다.

{diaryList.map((it) => (
      <DiaryItem key={it.id}{...it} />

원래라면 <DiaryItem key={it.id} content={it.content} date={it.date} ... /> 이런식으로 하나 하나 일일이 객체에 들어있는 값을 전달해야 했겠지만 전개연산자 { ...it } 을 활용하면 한방에 다 보내줄 수 있습니다.

관련해서는 우리 강의의 Props 영상을 다시 참고해보시기 바랍니다.

또는 아래의 링크를 참고해보셔도 좋을 것 같아요 😃

https://reactjs.winterlood.com/c89cba30-39b6-4094-85f6-f87a16842028#0bcbea71f3ca47d4afa1b83b646087c8

조은수님의 프로필 이미지
조은수
질문자

감사합니다!! 이해되었씁니당.~~

조은수님의 프로필 이미지
조은수

작성한 질문수

질문하기