์ธ๊ธฐ์ํ ์ถ์ฒ ์ฌ์ดํธ๋ฅผ ๊ตฌํํ๋ค ๊ฐ๋จํด ๋ณด์ด์ง๋ง ํด๊ฒฐ๋์ง ์๋ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ๋ค.
์ฌ๊ธฐ์๋ movie๋ผ๋ ํ๋กํผํฐ๋ฅผ ๋ฐ์ ์ ์๋ค๋๋ฐ ๊ทธ๋ด๋ฆฌ๊ฐ ์๋ค...
์ค๋ฅ ๋ถ๋ถ์ ์ฝ๋๋ฅผ ๋ณด์
import { useEffect, useState } from "react";
import { useParams } from "react-router-dom";
const Detail = () => {
const [detail, setDetail] = useState({});
const { id } = useParams();
const getDetail = async () => {
const json = await (
await fetch(`https://yts.mx/api/v2/movie_details.json?movie_id=${id}`)
).json();
setDetail(json);
};
useEffect(() => {
getDetail();
}, []);
console.log(detail.data.movie); ////์ฌ๊ธฐ๋ถ๋ถ
return (
<div>
</div>
);
};
export default Detail;
๋ถ๋ช ๋๋ aysnc await์ผ๋ก api๋ฅผ ๋น๋๊ธฐ์ฒ๋ฆฌ๋ก ๊ฐ์ ธ์๊ธฐ ๋๋ฌธ์, detail์์๋ api๊ฐ ๋ค์ด๊ฐ์ผํ๋ค...
๋ญ๊ฐ๋ฌธ์ ์ผ๊ฐ... ์ฒ์๋ถํฐ ๊ฐ์ฒด ์์ผ๋ก ํ์นธํ์นธ์ฉ ๋ค์ด๊ฐ๋ณด์
1. console.log(detail)
์ฑ๊ณต์ด๋ค?..
๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋ค๋๊ฑด ํ์คํด์ก๋ค!
๊ฐ์ฒด๋ก ์ง์ ๋ค์ด๊ฐ์
2. console.log(detail.data)
์ค! ์ฌ๊ธฐ๊น์ง๋ ๋ค์ด๊ฐ์ง๋ค
๋๋ค์ด๊ฐ๋ณด์
3. console.log(detail.data.movie)
ํ.. ์ผ๋จ detail.data.movie๊ฐ ์๋๋ค๋๊ฑด๋ฐ ์์ผ๊น?
๋ด๊ฐ ๊ฐ์ฒด๊ตฌ์กฐ๋ฅผ ์๋ชป์๊ณ ์๋๊ฑด๊ฐ?
๋ด๊ฐ ๋ณด๊ณ ์๋ moive:{...}์ ๋ญ๊ธธ๋ ์ฌ๊ธฐ๋ก ์๋ค์ด๊ธฐ์ง๋ ๊ฑธ๊น ๋๋์ฒด ์ ์๊ฐ ๋์ด์๋๋ฐ ์ undefined๋ผ๋ ์ค๋ฅ๋ฅผ ๋์ฐ๋๊ฑธ๊น
๋๋ฌด ์ด์ด๊ฐ ์์ด์ console.log(detail)๊ณผ console.log(detail.data.movie)๋ฅผ ๋์์ ์จ๋ดค๋ค
์ด๊ฑด ๋ ๋ญ์ผ!!!!
์ moive๋ก ์ง์ ์ ํ๋ ์๊ฐ๋ง ๋น ๊ฐ์ฒด๊ฐ ๋์ด๋ฒ๋ฆฌ๋ ๊ฒ์ผ๊น ํ์์ ๋ฌธ์ ๋ ์๋ค๊ฐ
useState๋ก ์ฒ์์ detail์ ์ด๊ธฐ๊ฐ์ ๋น ๊ฐ์ฒด {}๋ก ํ๊ธฐ ๋๋ฌธ์ ์ฒซ์ค์ {}์ ์ฉ๋ฉ์ด ๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ณด๋ค์ถ์ด detail์ ์ ๋ฐ์ดํธ ํด์ค๋ ๋น๋๊ธฐ์ฒ๋ฆฌ๋ก fetch๊ฐ ๋ ํ์ ์ ๋ฐ์ดํธํ๋ค.
const getDetail = async () => {
const json = await (
await fetch(`https://yts.mx/api/v2/movie_details.json?movie_id=${id}`)
).json();
setDetail(json);
};
๊ทธ๋์ ๋๋ฒ์งธ ์ค์ด ์ฉ๋ฉ์ด ์๋๋ ๋ถ๋ถ์ด๋ค..
๊ท์น์ ๋ฐ๊ฒฌ
๊ฐ์๊ธฐ ๋๋ค? ๊ท์น์ ๋ฐ๊ฒฌ
console.log(detail.data.movie);
์ฌ๊ธฐ์ ์๋ก๊ณ ์นจ์ ํ๋ฉด?
๋ค์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ด์ ๋ ๋ฌธ์ ๋ ์๋ก๊ณ ์นจ์ ์๋ค๋ ๊ฑฐ์ ํ์คํด์ก๋ค.
๋ญ๋ผ ์ง๋ฌธํ ์ง ๋๋์ด ์๋ค. gpt์๊ฒ ๋ฌผ์ด๋ณด์
gpt๊ฐ ๋งํ๋ฐ๋ก ์ฝ๋๋ฅผ ๊ณ ์ณฃ๋๋ฐ ์ฑ๊ณต์ด๋ค!!!!
'๐ง Library > React JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React์์ input ์ ๋ ฅ์ด ์๋๋ ๊ฒฐ์ ์ ์ธ ์ด์ (0) | 2023.03.07 |
---|---|
coin api ๋ถ๋ฌ์ค๊ธฐ, useEffect() (0) | 2023.03.07 |
React.useState() ๋ ๋๋ง (0) | 2023.03.05 |
React์ JSX, ReactDOM.render์ ํน์ง (0) | 2023.03.03 |