const getUserInfo = async () => {
try {
const accessToken = localStorage.getItem("accessToken");
if(accessToken) {
const response = await axios.get("https://moneyfulpublicpolicy.co.kr/user", {
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${accessToken}`,
}
});
setUserInfo(response.data);
}
} catch (error) {
console.error("์ ์ ์ ๋ณด ์๋ฌ=>", error);
}
}
ํด๋น ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ ํ๋ฉด์ ์ํ๋ ๋๋ก ์ถ๋ ฅ๋ ์ ๋๊ณ ์ค๋ฅ๊ฐ ์ฐํ๋ ๊ฒฝ์ฐ๊ฐ ์์๋๋ฐ ์ด๋ setUserInfo(response) ๊ฐ ์ฒ์์ ๋ญ๊ฐ ํ๋ฆฐ ๊ฑฐ์ง ๋ชฐ๋์๋๋ฐ
console.log(response)๋ฅผ ์ฐ์ด๋ด์ผ๋ก์จ response ์์ ์๋ data์ ์ ๊ทผํด์ผ ํด๋น ์ ์ ์ ID, Nickname, avatar์ ์ ๊ทผํ ์ ์๋ค๋ ๊ฑธ ์๊ณ ๋ ํ setUserInfo(response.data) ๋ก ์์ ํด์คฌ์
๊ทธ๋ฌ๋ ๋ง์ดํ์ด์ง์์ ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ํด๋น ์์ธ์คํ ํฐ์ด ๋ง๋ฃ๋๋ฉด์ 401 ์ค๋ฅ๋ฅผ ๋ฐํํ๋๋ฐ ํด๋น ์ค๋ฅ๋ฅผ ๊ณ ์น๊ธฐ ์ํด์ ์ก์ธ์คํ ํฐ์ ๊ฐฑ์ ํด์ฃผ๊ฑฐ๋, ์ฌ์ฉ์์๊ฒ ํ ํฐ์ด ๋ง๋ฃ๋์ผ๋ ๋ค์ ๋ก๊ทธ์ธ์ ํ๋ผ๊ณ ์ ๋๋ฅผ ํด์ผ ํ๋ค๋ ์๊ฐ๋ง ๊ฐ๊ณ ์์ง ์ฝ๋๋ก ๊ตฌํ์ ๋ชปํด๋ดค์
const handleSubmit = async () => {
const formData = new FormData();
if(avatar) {
formData.append("avatar", avatar);
formData.append("nickname", nickname);
}
try{
const accessToken = localStorage.getItem("accessToken");
const response = await axios.patch("https://moneyfulpublicpolicy.co.kr/profile", formData, {
headers: {
"Content-Type": "multipart/form-data",
Authorization: `Bearer ${accessToken}`,
},
});
console.log(response);
getUserInfo();
alert("ํ๋กํ ์
๋ฐ์ดํธ ์ฑ๊ณต!")
}
catch (error) {
console.error("ํ๋กํ ์
๋ฐ์ดํธ ์ค๋ฅ=>", error);
}
};
FormData()๋ฅผ ์ฌ์ฉํด FormData์ ๋๋ค์, ์๋ฐํ(ํ๋กํ ์ฌ์ง)์ ์ถ๊ฐํด์ค ๊ฒ ๋ง๊ณค ๋ค๋ฅธ axios ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ ๋์ ์ฝ๋๊ฐ ๋น์ท๋น์ทํ๋ค.
ํด๋น ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ ๊ฒช์ ๋ฌธ์ ๋ผ๋ฉด ์ฒ์ ์ ๋ฐ์ดํธ๋ฅผ ์งํํ ์์ ์๋ฌด ๋ฌธ์ ์์ด ์ ๋ฐ์ดํธ๊ฐ ์ ๋๋๋ฐ, ๊ทธ ํ์ ํ ๋ฒ ๋ ์ ๋ฐ์ดํธ๋ฅผ ํ๋ ค๊ณ ํ๋ฉด ์ด๋ ํ ์ด์ ์์์ธ์ง ๊ฐ๋์ฉ ์ ๋ฐ์ดํธ๊ฐ ์๋๋ค.. ์ด์ฉ๋ค ํ ๋ฒ ๊ทธ๋ฌ๋ ๊ฑฐ ๋ณด๋ ๋ญ๊ฐ ํต์ ์ ์ค๋ฅ๊ฐ ์๋ ๊ฑฐ ๊ฐ๊ธด ํ๋ฐ ์ด๊ฒ๋ ์์ get ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ๊ฒช์๋ ๋ฌธ์ ์ ๊ฐ์ด ๋ด์ผ ํด๊ฒฐ์ ํด๋ด์ผ ํ ๊ฑฐ ๊ฐ๋ค
์ผ๋จ ํด๋น ๊ธฐ๋ฅ์ด ์ ์๋ํ๋์ง ํ์ธ์ ํด๋ณด๊ฒ ๋ค

์ ์๋ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค nice ๐
๋ด์ผ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ธธ..
์์ ์ํ์ จ๊ตฌ๋ง