νμ μ λΆκ° λͺ¨μ¬ νλ©΄ 곡μ λ₯Ό ν ν, κ°μ₯ μ²μ ννλ©΄ λΆν° λ€μ΄κ°, κ°λ°μλꡬ - λ€νΈμν¬ νμ ν΅ν΄ ν΅μ κΈ°λ‘μ μ΄ν΄λ³΄μλ€.
κ·Έλ¬λ€, νλ‘ννμ΄μ§μ μ κ·Όμ νλ©΄ 무νλ λκ° λλ©΄μ API νΈμΆμ νκ³ μλ κ²μ λ³Ό μ μμλ€.
μ΄λ useEffect λ°°μ΄μ μλͺ»λ μμ‘΄μ±λ°°μ΄μ μ€μ ν¨μΌλ‘μ¨ λ¬΄ν λ λκ° μΌμ΄λ κ²μ΄μλ€.
const [productList, setProductList] = useState([]);
// μν 리μ€νΈ λΆλ¬μ€κΈ°
const getProduct = () => {
axios({
url: url + `/product/${accountname ? accountname : userAccountname}`,
method: 'GET',
headers: {
Authorization: `Bearer ${userToken}`,
'Content-type': 'application/json',
},
})
.then((res) => {
setProductList(res.data.product);
})
.catch((err) => console.error(err));
};
useEffect(() => {
setisRendered(true);
// μν 리μ€νΈλ₯Ό μ μ₯νκΈ° μν΄, μλ²μ ν΅μ μ νλ©΄μ
// then()ꡬ문μ ν΅νμ¬ μνκ΄λ¦¬λ₯Ό νλ€.
getProduct();
}, [userToken, accountname, productList]);
// μ΄λ¬ν μνκ΄λ¦¬λ₯Ό ν΅ν΄ λ½μλΈ λ°μ΄ν° ( productList )κ° μ‘΄μ¬νλ©΄
// νλ² λ λ λλ₯Ό νλ€.
// λ νλ² getProduct() ν¨μλ₯Ό μ€ννμ¬, μμ λμμ
// λ°λ³΅νλ€.
// -> κ²°κ΅, 무νλ λμ κ΅΄λ μ λΉ μ§κ² λλ€.
μμ κ²½μ°λ₯Ό ν΄μ νκΈ°μν΄μ, μμ‘΄μ± λ°°μ΄μ productList μΈμλ₯Ό μ κ±°νμλλ, 무νλ λκ° μ’ λ£ λμλ€.
μμ μ½λλ νμμ€ νλΆμ΄ μ§ μ½λμΈλ°, λλ μ΄λ¬ν κ²½μ°λ₯Ό λ°©μ§νκΈ° μν΄ μ λ§νλ©΄ useEffectμμ if λ¬Έ μ ν΅ν΄ νλ² μ‘°κ±΄μ μ£Όκ³ μ€ννλ λ°©μμ μ¬μ©νκ³ μλ€. μ΄λ¬ν λ°©μμ ν κ²½μ°, μ΅μ 무ν λ λλ λ§μ μ μλ€.