state = {
monsters: [],
userInput: "",
}
API = "https://jsonplaceholder.typicode.com/users";
ComponentDidMount() {
fetch(this.API)
.then((res) => res.json())
.then((res) => {
this.setState({
monsters: res
})
})
}
render() {
return (
<CardList monsters={this.state.monsters}
/>
)
}
class CardList extends Component {
render() {
const { monsters } = this.props;
return (
<div className="card-list">
{monsters.map((monster) => {
return (
<Card
key={monster.id}
id={monster.id}
name={monster.userName}
email={monster.email}
/>)}
</div>
)
}
}
const { id, name, email } = this.props;
render() {
return (
<div className="card-container" />
<img src=`https://robohash.org/${id}?set=set2&size=180x180` />
<h2>{name}</h2>
<p>{email}</p>
)
}
결과물
새로 알게 된 내용
1. Templete literals
ES6부터 제공하는 템플릿 리터럴은 이중 따옴표("")나 작은 따옴표('') 대신 백틱(
)(grave accent)을 이용합니다. 또한 플레이스 홀더를 이용하여 표현식을 넣을 수 있는데, 이는 $와 중괄호를 이용하여 ${expression} 다음과 같이 표현합니다. 백틱 안에 백틱을 넣어야 할때는 백틱 앞에 백슬러시\를 붙여줍니다.
예시
<img src=`https://robohash.org/${this.props.id}?set=set2&size=180x180` />
다음과 같이 변수, state값, props값 등을 참조할때`${expression}`를 이용할 수 있다.