![]() |
![]() |
console.log(json) 확인 후 추출할 데이터 위치를 확인한다. json.data.movies
useEffect(() => {
fetch("https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year")
.then((response) => response.json())
.then((json) => {
setMoives(json.data.movies);
setLoading(false);
})
}, []);
console.log(movies);
위 코드를 다음과 같이 많이 씀 await
const getMovies = async () => {
const json = await (await fetch("https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year")
).json();
setMoives(json.data.movies);
setLoading(false);
};
useEffect(() => {
getMovies();
}, [])
<div>
{movies.map((movie) => (
<div key={movie.id}>
<img src={movie.medium_cover_image} />
<h1>{movie.title} </h1>
<p>{movie.summary}</p>
<ul> {movie.genres.map((g) => <li key={g}>{g}</li>)}</ul>
</div>
))}
</div>
map 사용시 key값 필수로 들어가야한다!
더보기
import { useEffect, useState } from "react";
function App() {
const [loading, setLoading] = useState(true);
const [movies, setMoives] = useState([]);
const getMovies = async () => {
const json = await (await fetch("https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year")
).json();
setMoives(json.data.movies);
setLoading(false);
};
useEffect(() => {
getMovies();
}, [])
return (
<div>
{loading ? <h1>Loading...</h1> :
(
<div>
{movies.map((movie) => (
<div key={movie.id}>
<img src={movie.medium_cover_image} />
<h1>{movie.title} </h1>
<p>{movie.summary}</p>
<ul> {movie.genres.map((g) => <li key={g}>{g}</li>)}</ul>
</div>
))}
</div>
)
}
</div>
);
}
export default App;
반응형
'프론트엔드 > react' 카테고리의 다른 글
| React (12) - router 사용방법 (0) | 2023.04.28 |
|---|---|
| React (11) - API #2 컴포넌트 활용하기 (0) | 2023.04.28 |
| React (10) - USDtoCOIN Converter, API (0) | 2023.04.27 |
| React(9) - ToDoList 만들기 (0) | 2023.04.25 |
| React (8) - Effects #2 [cleanup] (0) | 2023.04.24 |

