1/2
๐ ํ ์ผ
4์ฐจ๊ณผ์ ์ฝ๋๋ฆฌ๋ทฐ ํผ๋๋ฐฑ ์์ & ์ ๋ฆฌ
โ
ํ ์ผ
4์ฐจ๊ณผ์ ์ฝ๋๋ฆฌ๋ทฐ ํผ๋๋ฐฑ ์์ & ์ ๋ฆฌ
์ฝ๋๋ฆฌ๋ทฐ ๋ํ ์ง๋ฌธ๊ณผ ๋ฆฌํฉํ ๋ง ๊ณํ์ด๋ ๊ธฐ๊ฐ์ ๋ํ ํ์ ํ ํผ๋๋ฐฑ ์์ ์ ๋๋ด๊ณ pr ํ ๋ค ์ด์์ ์ ๋ฆฌํ๋ค
์์ ์ด ์ด๋ ค์ด ๊ฑด ์์๋๋ฐ ์ง์ํ๊ฒ ๊ท์ฐฎ์ ๊ฒ ๋ง์์ ์์ ํ๋ ๋ฐ๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ๊ณ ์ณค๋์ง ์ ๋ฆฌํ๋ ๋ฐ๋ ์๊ฐ์ด ์ข ๊ฑธ๋ ธ๋ค
๊ทธ๋ฆฌ๊ณ ์์ ๋์ค์ ์๋ฌ๊ฐ ์๊ฒจ์ ์๊ฐ์ด ๋ ๊ฑธ๋ฆฐ ๊ฒ๋ ์์๋ค
๋ก๊ทธ์ธ ํ ์ฒ์ ๊ตฌ๋งคํ๊ธฐ ๋ค์ด๊ฐ๋ฉด length ์๋ฌ๊ฐ ๋๋ ์ํฉ์ด์๋ค
๊ณ์ข ์กฐํ api ์ชฝ์์ data ๋ฅผ ์ ๋ถ๋ฌ์ค์ง ๋ชปํ๋ ๊ฒ ๊ฐ์๋ฐ ์ ํํ ์์ธ์ ์ ์ ์์๋ค
fetch ํจ์๋ฅผ ๋ชจ๋ํ๋ก ๋ถ๋ฆฌํ์ง ์๊ณ ์ปดํฌ๋ํธ ๋ด๋ถ์์ useEffect ๋ก ๋ถ๋ฌ์ค๋ ์๋์ด ๋๋ ๊ฒ์ ๋ณด๋ ๋ฐ์ดํฐ๋ฅผ ์๋ชป ๋ณด๋ด๊ณ ์๋ ๊ฒ ๊ฐ์ง ์์๋ค
// ๊ณ์ข ์กฐํ api
export const getAccountInfo = async ({ accessToken }) => {
try {
const res = await fetch(ACCOUNT_URL, {
method: 'GET',
headers: { ...HEADERS_USER, Authorization: accessToken },
});
const json = await res.json();
return json;
} catch (error) {
console.error(error.message);
}
};
๋ค๋ฅธ ํ์๊ณผ ํจ๊ป ์ปดํฌ๋ํธ ๋ด์์ , fetch ํจ์ ์์์ console ์ ์ฐ์ด ๋ดค๋๋ฐ accessToken ์ด undefined ๋ก ๋์ค๋ ๊ฒ์ ๋ณด๊ณ ์ปดํฌ๋ํธ ๋ด์์ ๋ค์ accessToken ์ ๋ฐ์ ์ธ์๋ก ๋ฃ์ด์ฃผ๋ ํด๊ฒฐ๋์๋ค
๊ทผ๋ฐ ์ ๊น์ง๋ accessToken ์ ์ ๋ฐ์์ค๋ค๊ฐ ์ ๊ฐ์๊ธฐ ๋ชป ๋ฐ์์ค๋์ง ๋ชจ๋ฅด๊ฒ ๋ค
length ์๋ฌ๋ฅผ ํด๊ฒฐํ๋ ๊ฒฐ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค ^^
๋จ์ผ๊ณผ ๋ค์ค ์ํ ๊ตฌ๋งค ์ id ์ด๋ฆ์ด ๋ฌ๋ผ ์๊ธด ์ค๋ฅ๋ก ๋ก์ง์ ์ถ๊ฐํ๋ ค๊ณ ํ์ผ๋ ์ฝ๋๊ฐ ๊ธธ์ด์ ธ or ์ฐ์ฐ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ๋ค
์๋๋ ์์ ์ฌํญ์ธ๋ฐ ์ ๋ฆฌํด๋์ผ๋ ๋ฟ๋ฏํ๊ธฐ๋ ํ์ง๋ง ์๊ฐ๋ณด๋ค ๋ง์์ ์ข ๋ถ๋๋ฌ์ ๋ค
1. Account : accountColor ์คํ์ผ ๋ถ๋ถ ์ธ๋ผ์ธ์์ ์ธ๋ถ๋ก ์์
2. Header : search input react-hook-form ๋์
→ ํด๋น ๊ธฐ๋ฅ์ ์ฅ์ ์ ์ด๋ฆด ์ ์์ ๊ฒ ๊ฐ์ ์ฌ์ฉํ์ง ์์ผ๋ ค ํ์ผ๋ ํด๋น ๊ธฐ๋ฅ์ ๋์
ํ ๋ ์๋๋ฉด์์ ๊ทน์ ์ธ ์ฐจ์ด๊ฐ ๋์ ๋์
ํ๊ธฐ๋ก ๊ฒฐ์
3. SearchItem : onClick ์ด๋ฒคํธ ํธ๋ค๋ง ํจ์ ๋ถ๋ฆฌ , cur → prev ์์
4. MyBuy : ๊ฒฐ์ ๋ฒํผ onClick ์ด๋ฒคํธ ํธ๋ค๋ง ํจ์์์ ๋ฐฐ์ก์ง์ ๋ณด reload ๋ถ๋ถ ์ ๊ฑฐ
5. Account : onChange ์ ์ ๋ฌ๋๋ ํจ์์ ์ธ์๋ก ๋ฃ๋ bankName ์ ๊ฑฐ
6. MyBuy : ์๋ ๋ฐ์ดํฐ ์๋ ๊ฒฝ์ฐ 1 ๋ก ์ฒ๋ฆฌํ๋๋ก ์์
7. Search : useSearchParams ๋ณ์ ์ ์ธ ๋ฐฉ์ ์์
8. Search : ํค์๋ ๊ตฌ๋ถ ๋ก์ง ๋ถ๋ถ ์์ , else ๋ฌธ์ ํ์ ์์ด์ ์ญ์
9. Search : API ํธ์ถ ๋ฐฉ์์ ๋ก์ง ๋ถ๋ฆฌ x, useQuery ๋ก ์์ ํ์ฌ ์ฒ๋ฆฌ ์๋ ์ฆ๊ฐ
10. TotalProduct : error, loading ๋ถ๋ถ if return ๋ฌธ์์ ์ปดํฌ๋ํธ return ๋ฌธ ์์ ์ผํญ์ฐ์ฐ์๋ก ์ฒ๋ฆฌ
11. Product : onClickDetail ํจ์ ์ญ์
12. MyBuy : productsPrice ๋ก์ง์์ ๋ฐ๋ณต๋ฌธ ์์ if else ๋ ์์ธํ์ด์ง์ ๊ตฌ๋งคํ๊ธฐ ๊ฒฝ์ฐ quantity ๋ฐ์ดํฐ๊ฐ undefined ๋์ด ์ฒ๋ฆฌํด์ค ๊ฒ์ผ๋ก else ๋ฌธ ์ ๊ฑฐํ์ง ์์์ , while ๋ฌธ ์ ๊ฑฐํ์ฌ productsPrice ์ ๋์ ํ๋ ๊ฒ์ผ๋ก ์์
13. MyBuy : ๋ฐฐ์ก์ง์ ๋ณด form ์ ๋ณ์๋ช
์ ์ถํ ๊ธฐ๋ฅ ๊ตฌํํ๋ฉด์ ์์ ์์
14. css : ํด๋์ค๋ค์ ์ปจ๋ฒค์
์ ๋ง๊ฒ ์์ . btn_heart → btnHeart
15. MyCart : ์ฅ๋ฐ๊ตฌ๋์์ ๊ตฌ๋งคํ๊ธฐ๋ก ๋๊ฒจ์ฃผ๋ state ๋ณ์๋ช
์ด ๋์ผํ๋๋ก ์์ . buyItem → buyProduct
16. loading : ๋ก๋ฉ ์ LoadingModal ํ์ฉ
1/3
๐ ํ ์ผ
โ
ํ ์ผ
// api ํธ์ถ
const {isLoading, data: search, refetch} = useQuery(['search'], () => {
if (findTitle && tag) return getSearch(findTitle, tag);
else if (tag) return getSearch('', tag);
else return getSearch(title);
},
{
onError: () => {
alert('ํ์ฌ ๊ฒ์์ ์ด์ฉํ ์ ์์ผ๋ ๋ฌธ์ ๋ฐ๋๋๋ค.');
},
},
);
useEffect(() => {
refetch();
}, [refetch, title]);
๊ฒ์ ๊ธฐ๋ฅ์์ useEffect ๋ก fetch ํจ์๋ฅผ ๋ถ๋ฌ์ค๋ ๊ฒ์ useQuery ๋ฅผ ์ด์ฉํ์ฌ ๋ฆฌํฉํ ๋ง์ ํ๋ค
ํ์คํ ๋นจ๋ผ์ง ๊ฒ ๋๊ปด์ก๋ค
๊ทผ๋ฐ ์๊พธ ๊ฒ์์ด๋ง ์ ๋ถ๋ฌ์ค๊ณ ๊ฐ์ ธ์ค๋ ์ ๋ณด๋ ์
๋ฐ์ดํธ๊ฐ ๋์ง ์์๋๋ฐ ๊ฒฐ๊ตญ useEffect ๋ก refetch ๋ฅผ ํด์ค ์ ๋ฐ์ ์์๋ค
++ ๋์ค์ ๋ค๋ฅธ ํ์์ด ์๋ ค์คฌ๋๋ฐ fetch ํจ์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ๊ฒ์์ด๋ง๋ค ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ๋๋ง๋ค query ํค๋ก ๊ณ ์ ํ ๊ฐ์ ์คฌ์ด์ผ ํ๋๋ฐ ๊ณ์ search ๋ก ๊ฐ์ ธ์ค๋ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค๊ณ ํ๋ค ๊ทธ๋์ key ๊ฐ์ผ๋ก ๊ฒ์์ด๋ฅผ ์ง์ด๋ฃ์ด์คฌ๋๋ refetch ๋ ํ์ ์์๋ค … useQuery ์ ๋ํด ์ ๊ณต๋ถ๋ ํ์ง ์๊ณ ์ฌ์ฉํ๋ ์ด๋ฐ ์ผ์ด ์๊ธด ๊ฒ ๊ฐ์ ๋ถ๋๋ฌ์ ๋ค
react hook form ์จ์ ๋ฐฐ์ก์ง ์ ๋ณด ๊ธฐ๋ฅ ๊ตฌํ ์ .
๊ฒ์์ด ์
๋ ฅ ๋ ํ๋ฒ ์จ๋ดค๋๋ฐ๋ input ์ด ๋ง์์ง๋๊น ๋ณต์กํด์ ธ์ ๊ฐ์๋ฅผ ๊ณ์ ๋ณด๋ฉด์ ํ๋ค
์๋ฌด๋๋ ๊ฐ์๋ฅผ ๋ณด๋ฉด์ ์ค์ ๋ก ์ฝ๋๋ฅผ ์น๊ณ ์ด ๊ฒ ์๋๋ผ ์ ์ดํด๊ฐ ๋์ง ์์ ์ค๋ ๊ฑธ๋ ธ๋ค
1/4
๐ ํ ์ผ
4์ฐจ๊ณผ์ ๋ฆฌํฉํ ๋ง ๋ง๋ฌด๋ฆฌ
๋
ธ๋ง๋ ์ฝ๋ ๋ฆฌ์กํธ ๋ง์คํฐ ํด๋์ค typescript ํํธ ์ค์ต
โ
ํ ์ผ
4์ฐจ๊ณผ์ ๋ฆฌํฉํ ๋ง ๋ง๋ฌด๋ฆฌ
๋ค์ ์ฐํธ๋ฒํธ api ์ด์ฉํ์ฌ ์ฃผ์ ์
๋ ฅ ๊ธฐ๋ฅ ๊ตฌํ ? ์ .
https://www.npmjs.com/package/react-daum-postcode
๋๋ ์ ์ฐฝ์ ์ด์ด์ ๋ค์ ์ฃผ์ ๊ฒ์์ฐฝ์ด ๋ํ๋ฌ์ผ๋ฉด ์ข๊ฒ ๋๋ฐ ๋ค๋ค ๋ชจ๋ฌ์ฐฝ์ผ๋ก ๋์ค๊ฒ ๊ตฌํํด์ ์ ๋ฌธํ์ ์ฐธ๊ณ ํด์ ๊ตฌํํ๋ค
๋ณต๋ถํ๋ฉด ๋๋๊ฑฐ๋ผ ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์์๋ค
ํ์คํ ๋ฌธ์๋ฅผ ์ ์ฝ์ด๋ด์ผ ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค
์๋ฌ : https://mik-a.com/62
ํ๋ค๊ฐ ์ ๋งํฌ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋๋ฐ value ๊ฐ ๋ค ๋ค์ด์ค์ง ์์์ ๋ value ์ ๋ฃ์ด์ฃผ๋ ค๊ณ ํด์ ๊ทธ๋ฐ ๊ฒ ๊ฐ์๋ค
๊ทธ๋ฆฌ๊ณ ๊ตฌ๋งค ํ์ด์ง์ ๊ฒฐ์ ๋ก์ง์ promise.all ๋ก ํ๊ณ useQuery ์ useMutation ๋์
ํด๋ณด๋ ค๊ณ ํ์ผ๋ promise.all ์ฐ๋จน๋ง ํ๋ค๊ฐ ๋์ด ๋ฌ๋ค ^^..
๋ด์ผ์ ์ฐ์ผ๋ก ํด์ผ์ง ! ํด๋ธ๋ค !
์ค๋ ๋ฆฌ์กํธ ์์
์ ๋ฃ๋ค๊ฐ firebase ๋ฅผ github ์ผ๋ก deploy ํ๋ ๊ณผ์ ์์ ์๋ฌ๊ฐ ๋ฌ๋๋ฐ
firebase-hosting-merge.yml ํ์ผ์์ run: npm install && npm run build ์ผ๋ก ์
๋ ฅํด์ฃผ์ง ์์์ ๋๋ ์ค๋ฅ์๋ค
๋
ธ๋ง๋ ์ฝ๋ ๋ฆฌ์กํธ ๋ง์คํฐ ํด๋์ค typescript ํํธ ์ค์ต
๋ฆฌํฉํ ๋งํ๊ณ ๋ฆฌ์กํธ ์์
๋ฃ๋๋ผ ์๋ฒฝ 3 ์๊น์งํด์ ๊ฒจ์ฐ๊ฒจ์ฐ ์์ฑ์์ผฐ๋ค
๊ทธ๋ฐ๋ฐ ํ์
์คํฌ๋ฆฝํธ๋ ๋ค์ด๋ ๋ค์ด๋ ์ ๋ชจ๋ฅด๊ฒ ์ด์ ๊ณ์ ์จ๋ด์ผ ๊ฒ ๋ค๋ ์๊ฐ์ด ๊ณ์ ๋ค์๋ค
์ด๋ ์ํฉ์์ ํ์
์ ์ง์ ํด์ฃผ๊ณ ์ด๋ป๊ฒ ์
๋ ฅ์ ํด์ค์ผ ํ๋์ง ๊ฐ์ ์ ๋ชป ์ก๊ฒ ๋ค
interface ๋ฅผ ๊ณ์ ๋ถ์ฌ์ฃผ๊ธด ํ๋๋ฐ ์ด๋ ๋๋ props ์ ํด์ฃผ๊ณ ์ด๋ ๋๋ useState ์ ํด์ฃผ๊ณ .. ๋๋ฌด๋๋ฌด ํท๊ฐ๋ฆฐ๋ค ~~!
1/5
๐ ํ ์ผ
4์ฐจ๊ณผ์ ๋ฆฌํฉํ ๋ง ์ฐ์ฐ๋ง๋ฌด๋ฆฌ
๊ฐ๋ฐ๋ธ๋ก๊ทธ ์ ๋ฆฌ & ์ ์ถ
โ
ํ ์ผ
4์ฐจ๊ณผ์ ๋ฆฌํฉํ ๋ง ์ฐ์ฐ๋ง๋ฌด๋ฆฌ
promise.all ๋ก ๋ฆฌํฉํ ๋ง ํ์ผ๋ ํด๋น ๊ธฐ๋ฅ์ promise all ์์ ๋ฐฐ์ด์ ๋ด๊ธด promise ์ดํ์ด ํ๋๋ผ๋ ๊ฑฐ๋ถ๋๋ฉด ์ ์ฒด ๋ฐํ์ ๊ฑฐ๋ถ๋ก ๋ฐํํ๊ธดํ์ง๋ง ์ด๋ฏธ ์ํ๋ ์ดํ์ด ์ทจ์๋๋ค๋ ์๋ฏธ๋ ์๋๋ผ๊ณ ํจ
๊ทธ๋์ ์ด ๋ก์ง์ ๋ค์ ์์ ํ๊ฑฐ๋ ์ฅ๋ฐ๊ตฌ๋์์ ํ์ ์ํ์์ฒด๋ฅผ ๋นํ์ฑํํ๊ฑฐ๋ ๊ตฌ๋งค ํ์ด์ง์์ ๋ค์ ์
๋ฐ์ดํธํด์ ๊ฒฐ์ ๋ฒํผ์ ๋ง๋๋ก ์์ ํด์ผ ํ ๊ฒ ๊ฐ์
promise.all(products.map(
// api ํธ์ถ
))
.then(๋ฐฐ์ก๋น ์์ฑ,๊ฒฐ์ ,์ญ์ )
.catch(์ฝ์์๋ฌ)
→ ์ด๋ฐ ์์ผ๋ก ๋ก์ง์ ์์
๊ฐ๋ฐ๋ธ๋ก๊ทธ ์ ๋ฆฌ & ์ ์ถ
์์ฆ์ ํ๋ฃจ ์ผ๊ณผ๊ฐ ๋๋๊ณ ๋ฐ๋ก ์ฐ๋ ๊ฑธ ํฌ๊ธฐํ๊ณ ๊ฐ๋จํ๊ฒ ์ด๋ค ๊ฑธ ํ๋ค๊ณ ์ด ๋ค์ ํ๋ฃจ ์ ๋ชฐ์์ฐ๋ ๊ฑธ ๋ฐ๋ณตํ๊ณ ์๋ค
์ด๋๋ ๋๋ ์ถ์ง๋ง ์ด๋ ๊ฒ ๋ผ๋ ํ๋ ๊ฒ ์ด๋๋ ์ถ๋คใ
ใ
.. ๊ทธ๋๋ ์ ์ถ์ ๋ชปํ๊ณ ์๋ ๊ฑด ์๋๋๊น ..!
์ด ๊ต์ก ๊ณผ์ ์ ๋ค์์ง ๋ฒ์จ 3 ๊ฐ์ ๋ฐ์ด ์ง๋๋ฒ๋ ธ๋ค
์๊ฐ์ด ์ด๋ป๊ฒ ์ง๋๊ฐ๋์ง๋ ๋ชจ๋ฅด๊ฒ ํ๋ฃจํ๋ฃจ ์ผ๊ณผ๋ฅผ ํด๋ด๋ ํ๋ฃจ์ด์ด์ฒ๋ผ ์ด๊ณ ์๋ค
๊ทธ๋๋ ํ์คํ 3 ๊ฐ์ ์ ์ ์๊ฐํด๋ณด๋ฉด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ์์ ๋ค ์์
์์ง๋ ๋ฐฐ์ธ ๊ฒ ์ฐ๋๋ฏธ์ง๋ง ์ด๋งํผ ์ฑ์ฅํ ๋ด๊ฐ ์๋์ค๋ฝ๋ค !!!
๋งค์ผ๋งค์ผ ๋น๊ดํ๋ฉฐ ์ฌ๋ ๊ฒ๋ณด๋ค ์ด๋ ๊ฒ ์กฐ๊ธ์ด๋๋ง ๋๊ด์ ์ผ๋ก ์๊ฐํ๋ฉฐ ์ฌ๋ ๊ฒ ๋ด ์ ์ ๊ฑด๊ฐ์๋ ํธํ ๊ฒ ๊ฐ๋ค ..
์์ผ๋ก ์๋ฃ๊น์ง 3 ๊ฐ์ ๋ฐ ..! ์์ข์ฃ ํ์ดํ
!~~!
1/6
๐ ํ ์ผ
4์ฐจ ๊ณผ์ ๋ฆฌํฉํ ๋ง : ๋ฐฐ์ก๋น ๊ฒฐ์ ๋ก์ง ์์
โ
ํ ์ผ
4์ฐจ ๊ณผ์ ๋ฆฌํฉํ ๋ง : ๋ฐฐ์ก๋น ๊ฒฐ์ ๋ก์ง ์์
for (let i = 0; i < products.length; i++) {
let quantity = products[i].quantity || 1;
while (quantity > 0) {
if (i === 0 && quantity === 1) {
const plus = updateProduct(products[i].productId, { price: products[i].price + 3000 });
plus.then(async (data) => {
await getBuy(data.id, accountId, accessToken);
updateProduct(data.id, { price: data.price - 3000 });
});
console.log(
`์ฅ๋ฐ๊ตฌ๋ ์ํ+3000 ๊ฒฐ์ ${products[i].productId || products[i].id} ${products[i].price}`,
products[i],
);
quantity--;
} else {
await getBuy(products[i].productId || products[i].id, accountId, accessToken);
console.log(`์ฅ๋ฐ๊ตฌ๋ ์ํ ๊ฒฐ์ ${i}๋ฒ์งธ`, products[i]);
quantity--;
}
}
}
์ํ ์ค ํ๋์ ๊ฐ๊ฒฉ์ 3000 ์ ( ๋ฐฐ์ก๋น ) ๋ฅผ ์ถ๊ฐํ์ฌ ์์ ํ ๋ค ํด๋น ๊ฐ์ผ๋ก ๊ฒฐ์ ๋ฅผ ์งํํ๊ณ ๋ค์ ์ํ์ ์๋ ๊ฐ๊ฒฉ์ผ๋ก ์์ ํ๋ ๋ก์ง์ผ๋ก ๊ฒฐ์ ํ๋ ๊ฒ์ ์ฑ๊ณตํ๋ค
๊ทธ๋ฌ๋ ์ค์ ๊ฒฐ์ ๋ด์ญ์์๋ ์์ ํ ๊ฒฐ๊ณผ๋ก ๊ฒฐ์ ๊ฐ ์งํ๋์๋์ง ์ ์๊ฐ ์์๋ค
๊ทธ ์ด์ ๋ ๊ฒฐ์ ๋ด์ญ api ์์ฒด์์ ๊ฒฐ์ ํ ๋์ ๊ฐ๊ฒฉ์ ์ถ๋ ฅํ๋ ๊ฒ์ด ์๋๋ผ ํด๋น ์ํ์ id ๋ฅผ ์ด์ฉํด ์ต์ข
์์ ๋ ์ดํ์ ๊ฐ๊ฒฉ์ ๊ฐ์ ธ์จ๋ค
ํด๋น ๊ฐ์ ์๋ ์ํ์ ๊ฐ๊ฒฉ์ผ๋ก ์์ ํ์ง ์๊ณ ๊ฒฐ์ ํ์ ๋๋ ์์ ์ด์ ์ ๊ฒฐ์ ํ ๋ด์ญ๋ค๊น์ง 3000 ์ ( ๋ฐฐ์ก๋น ) ์ด ์ถ๊ฐ๋ ๊ฐ๊ฒฉ์์ ํ์ธํ ์ ์์๋ค
๊ฒฐ์ ํ ๋ ๋ฐฐ์ก๋น ๋งํผ ์ํ ๊ฐ๊ฒฉ์ ์ถ๊ฐํ์ฌ ์์ ํ๊ณ ๊ฒฐ์ ์ดํ ์ํ ๊ฐ๊ฒฉ์ ๋ค์ ์๋ ๊ฐ๊ฒฉ์ผ๋ก ์์ ํ๋ ๋ก์ง์ ์ฌ์ฉํ์ง ๋ชปํ ๊ฒ ๊ฐ๋ค
๋ฐฑ์๋๋ฅผ ์กฐ์ ํ์ง ์๋ ์ด์ ๋ฐฐ์ก๋น๋ฅผ ์์ฒด๋ฅผ ์์ ๊ณ ๊ฒฐ์ ๋ฅผ ํ๊ฑฐ๋ ๋ฐฐ์ก๋น ์ํ์ ์ถ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ๋๋์๊ฐ์ผ ๋ ๊ฒ ๊ฐ๋ค
++ ํ์๋ค๊ณผ ์ค๊ฐ ํ์์์ ์๊ธฐ๋ฅผ ํด๋ดค๋๋ฐ ์ผ๋จ ๋ฐฐ์ก๋น ์ํ์ด ๊ฒฐ์ ๋ด์ญ์ ๋๋ฌด ๋ง์ด ์ฐํ ๋ถ๋ฌ์ค๋ ๋ฐ ๋๋ฌด ๋ง์ด ์๋ชจํ๋๊น ์ด ๋ก์ง์ผ๋ก ์งํํ๊ณ ์ถํ์ ๋ฐฑ์๋๊ฐ ๊ตฌ์ถ๋๋ฉด ๋ก์ง์ ๋ณ๊ฒฝํ๊ธฐ๋ก ํ๋ค
1/8
๐ ํ ์ผ
4์ฐจ ๊ณผ์ ๋ฆฌํฉํ ๋ง : ๋ฐฐ์ก๋น ๊ฒฐ์ ๋ก์ง ์์
โ
ํ ์ผ
4์ฐจ ๊ณผ์ ๋ฆฌํฉํ ๋ง : ๋ฐฐ์ก๋น ๊ฒฐ์ ๋ก์ง ์์
useMutation ์ผ๋ก ๋ฆฌํฉํ ๋งํ๋ ค๊ณ ํ์ผ๋ ์๋จ for ๋ฌธ์์ ๋นผ์ ๋จ๋
์ผ๋ก ๊ฒฐ์ ํด๋ ์๋จ
๊ฑ ์๋จ ์ ์๋จ ?
ํ๋ฃจ์ฃ์ผ ๋ถ์ก๊ณ ์์์ ๋ ๊ทธ๋ฅ ์ง์ณ ์ฐ๋ฌ์ง
๊ณ์ _ref ์ด์ฉ๊ตฌ๋ undefined ๋ธ ๋ ๊ทธ๋ฅ ๊ธฐ์
fetch ํจ์์์ console ์ฐ์ผ๋ฉด ๊ทธ๋ฅ undefined. ๋ฌด์ ๊ถ undefined.
๊ทธ๋์ ๋ค๋ฅธ ํ์๋ค์ด ์ด mutation ๋ฐฐ๊ปด๋ด ์ ์๋์ผ ์๋ผ
๋ค๋ฅธ ๊ณต๋ถ ํ์ง๋ ๋ชปํ๊ณ ์คํธ๋ ์ค ๋ฐ์์ ๋ฐฐ๋ฌ ์ค์ง๊ฒ ์ํดใ
.. ๋ด์ผ ํ์๋ ๋ฌผ์ด๋ด์ผ์ง …