WEB, ReactJS, Lists with .maps & set PropTypes
Array.prototype.map()
- map이라는 기능은 새로운 array를 만든다
- ex. movies 배열을 가지고 맵핑을해서 새로운 배열을 만든다.
- movie는 현재 사이클의 엘리멘트를 의미한다.
{ movies.map( movie => { return <Movie title={movie.title} poster={movie.poster} /> })} //-- 이 부분은 아래부분과 같다 {[ <Movie title={movie[0].title poster={movie[0].poster}}> <Movie title={movie[1].title poster={movie[1].poster}}> <Movie title={movie[2].title poster={movie[2].poster}}> ]}
##### Each child in a list should have a unique “key” prop.
- 고유한 key이 필요하다 (여기서는 index로 대체)
- 수정한 코드
{movies.map( (movie, index) => { return <Movie title={movie.title} poster={movie.poster} key={index} /> })}
propTypes
- props의 변수 타입을 설정해준다
- ex) title: PropTypes.string.isRequired
- title의 타입은 반드시 문자열이여야한다
- isRequired : title은 항상 있어야 한다. 만약 Movie 함수에서 props.title이 사용되지 않으면 오류 발생
Movie.propTypes = { title: PropTypes.string.isRequired, poster: PropTypes.string } function Movie(props) { return ( <div> <MoviePoster poster={props.poster}/> <h1>{props.title}</h1> </div> ); }