πŸ“useEffect μ‚¬μš© μ‹œ, μ˜μ‘΄μ„± λ°°μ—΄μ˜ μ€‘μš”μ„±

10_2pangΒ·2023λ…„ 6μ›” 5일
0

βš½οΈνŠΈλŸ¬λΈ”μŠˆνŒ…

λͺ©λ‘ 보기
39/94
post-thumbnail

πŸ‘¨β€πŸ’»Β μ‚¬κ±΄


  • νŒ€ν”„λ‘œμ νŠΈ 쀑 μ„œλ²„ κ΄€λ¦¬μžμΈ λ©˜ν† λ‘œ λΆ€ν„°, λ„ˆλ¬΄ μ–΄λ§ˆμ–΄λ§ˆν•˜κ²Œ λ§Žμ€ λ„€νŠΈμ›Œν¬ 톡신이 μ΄λ£¨μ–΄μ Έμžˆλ‹€κ³  말씀해주셨닀. μ²˜μŒμ— μ–΄λ– ν•œ λ¬Έμ œμΈμ§€λ„ λͺ¨λ₯΄κ³ , 처음 λ§ˆμ£Όν•œ λŒ€ν˜•μ‚¬κ³ μ— νŒ€μ› μ „λΆ€ νŒ¨λ‹‰μ— λΉ μ§„ μ‚¬κ±΄μ΄μ—ˆλ‹€.

βœ…Β ν•΄κ²°


νŒ€μ› μ „λΆ€κ°€ λͺ¨μ—¬ ν™”λ©΄ 곡유λ₯Ό ν•œ ν›„, κ°€μž₯ 처음 ν™ˆν™”λ©΄ λΆ€ν„° λ“€μ–΄κ°€, κ°œλ°œμžλ„κ΅¬ - λ„€νŠΈμ›Œν¬ 탭을 톡해 톡신기둝을 μ‚΄νŽ΄λ³΄μ•˜λ‹€.

κ·ΈλŸ¬λ‹€, ν”„λ‘œν•„νŽ˜μ΄μ§€μ— 접근을 ν•˜λ©΄ λ¬΄ν•œλ Œλ”κ°€ λ˜λ©΄μ„œ 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 λ¬Έ 을 톡해 ν•œλ²ˆ 쑰건을 μ£Όκ³  μ‹€ν–‰ν•˜λŠ” 방식을 μ‚¬μš©ν•˜κ³  μžˆλ‹€. μ΄λŸ¬ν•œ 방식을 ν•  경우, μ΅œμ†Œ λ¬΄ν•œ λ Œλ”λŠ” 막을 수 μžˆλ‹€.

profile
μ£Όλ‹ˆμ–΄ ν”„λ‘ νŠΈμ—”λ“œ 개발자 이광렬 μž…λ‹ˆλ‹€ 🌸

0개의 λŒ“κΈ€