React 반복문

JJ·2022년 8월 8일
0

React

목록 보기
2/8
post-thumbnail

리액트에서 반복문 없이 배열의 데이터를 반복적으로 사용하고자 할 경우에는 아래와 같이 사용할 수 있다.

function App() {
  const movies =  [
    { title: "code1", year: 2001},
    { title: "code2", year: 2002},
    { title: "code3", year: 2003},
  ];
  return (
    <div className="App">
      <h1>Movie list</h1>
      <div className="movie">
        <div className="movie-title">{movies[0].title}</div>
        <div className="movie-year">{movies[0].year}</div>
      </div>
      <div className="movie">
        <div className="movie-title">{movies[1].title}</div>
        <div className="movie-year">{movies[1].year}</div>
      </div>
      <div className="movie">
        <div className="movie-title">{movies[2].title}</div>
        <div className="movie-year">{movies[2].year}</div>
      </div>
    </div>
  );
}

위 데이터를 map사용하여 작성해보면 다음과 같다.

function App() {
const movies =  [
    { title: "code1", year: 2001},
    { title: "code2", year: 2002},
    { title: "code3", year: 2003},
  ];
  const renderMovies = movies.map(movie => {
    return (
      <div className="movie">
        <div className="movie-title">{movie.title}</div>
        <div className="movie-year">{movie.year}</div>
      </div>
    )
  });
  return (
    <div className="App">
      <h1>Movie list</h1>
      {renderMovies}
    </div>
  );
}

다만 위처럼 key값 없이 map을 사용하게 되면 다음과 같이 콘솔창에 경고가 뜬다.

function App() {
  const movies =  [
    { title: "code1", year: 2001},
    { title: "code2", year: 2002},
    { title: "code3", year: 2003},
  ];
  const renderMovies = movies.map(movie => {
    return (
      <div className="movie" key={movie.title}>
        <div className="movie-title">{movie.title}</div>
        <div className="movie-year">{movie.year}</div>
      </div>
    )
  });
  return (
    <div className="App">
      <h1>Movie list</h1>
      {renderMovies}
    </div>
  );
}

key 값으론 key: 1 이런식으로 따로 줘도 괜찮고 배열의 아이템마다의 고유한 값을 key값으로 설정해줘도 괜찮다.

위 코드의 경우 title이 각자 다른 값이어서 title을 키값으로 넣고 실행시켰더니 경고가 사라졌다.

profile
신규...개발자가...되자...

0개의 댓글