πŸ“useEffect 와 useState λ₯Ό ν†΅ν•œ μƒνƒœκ΄€λ¦¬μ˜ μ€‘μš”μ„±

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

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

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

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


  • νŒ€ν”„λ‘œμ νŠΈ 쀑 κ²Œμ‹œλ¬Ό μž‘μ—…μ„ ν•˜λ‹€, Uncaught TypeError: Cannot read property... 와 같은 μ—λŸ¬κ°€ 계속 μƒμ„±λ˜μ—ˆλ‹€. μ–΄μ©”λ•ŒλŠ” λ Œλ”λ§μ΄ 되고 μ–΄μ©”λ•ŒλŠ” λ Œλ”λ§μ΄ μ•ˆλ˜μ—ˆλ‹€. 이λ₯Ό 곰곰히 생각해보닀, μ—­μ‹œ λ Œλ”λ₯Ό λ°›λŠ”λ™μ•ˆ κΈ°λ‹€λ¦¬κ²Œ ν•˜μ—¬μ•Όκ² λ‹€λŠ” 생각을 ν–ˆλ‹€.

βœ…Β ν•΄κ²°


useStateλ₯Ό ν†΅ν•˜μ—¬, λ Œλ”λ§ λ λ•Œμ™€ μ•ˆλ λ•Œλ₯Ό κ΄€λ¦¬ν•΄μ£ΌλŠ” 것을 λ§Œλ“ λ‹€.

νŠΉνžˆλ‚˜, μ„œλ²„μ™€ ν†΅μ‹ ν•˜μ—¬ λ°›μ•„μ˜€λŠ” 값을 κ΄€λ¦¬ν• λ•ŒλŠ” λ”λ”μš± μœ μ˜ν•˜μ—¬ μ‚¬μš©ν•œλ‹€. μ΅œλŒ€ν•œ κΉŠμ€ 볡사λ₯Ό ν•˜μ—¬, λ”°λ‘œ 관리λ₯Ό ν•˜μž.

//props 값은 μƒμœ„ μ»΄ν¬λ„ŒνŠΈμ—μ„œ μš”μ²­λ°›μ€ 값을 λ°›μ•„μ˜¨κ²ƒμ΄λ‹€.
const Post = ({ post }) => {
  const [data, setData] = useState('');
  const [dateData, setDateData] = useState({});
  const [imageFile, setImageFile] = useState([]);

	useEffect(() => {
		// props 인 postκ°€ λ°›μ•„μ‘Œλ‹€λ©΄,
    if (post) {
      return setData({ ...post });
    }
  }, []);
	
  useEffect(() => {
		//data 값이 μ‘΄μž¬ν•œλ‹€λ©΄,
    if (data) {
      setDateData(data.createdAt);
      setImageFile(data.image.split(','));
    }
  }, [data]);
	//μ΄λΆ€λΆ„μ—μ„œ μƒνƒœκ΄€λ¦¬λ₯Ό ν•˜μ§€μ•Šκ³  λ°”λ‘œ μ μš©ν•˜λ €λ‹ˆ, λ¬Έμ œκ°€ λ°œμƒν•˜μ˜€λ‹€.
  const year = new Date(dateData).getFullYear();
  const month = new Date(dateData).getMonth() + 1;
  const date = new Date(dateData).getDate();
}
profile
μ£Όλ‹ˆμ–΄ ν”„λ‘ νŠΈμ—”λ“œ 개발자 이광렬 μž…λ‹ˆλ‹€ 🌸

0개의 λŒ“κΈ€