πŸ“μ»΄ν¬λ„ŒνŠΈκ°€ 마운트 λ λ•Œλ§Œ useEffect 싀행될 경우의 return κ°’ ν™œμš©ν•˜κΈ°

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

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

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

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


  • μ‡Όν•‘λͺ° κ΅¬ν˜„μ€‘, useEffectλ₯Ό ν†΅ν•˜μ—¬ μƒνƒœκ΄€λ¦¬λ₯Ό ν•˜μ˜€λ‹€. μ΄λ•Œ, useEffect λŠ” 마운트 λ λ•Œ, 단 ν•œλ²ˆλ§Œ μ‹€ν–‰ν•˜κ²Œ ν•˜λ„λ‘ 섀정을 ν•΄λ‘μ—ˆλ‹€. 이미 λ Œλ”λ§ 된 데이터λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜μ—¬ μ‚¬μš©ν•  μƒκ°μ΄μ˜€λ‹€. κ·ΈλŸ¬λ‚˜, 자꾸 νƒ€μž…μ—λŸ¬μ™€ ν•¨κ»˜ ν• λ‹Ήλ˜μ§€ μ•Šμ•˜λ‹€λŠ” μ—λŸ¬ 문ꡬλ₯Ό λ°›μ•˜λ‹€.

βœ…Β ν•΄κ²°


λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•  값을 μ „κ°œμ—°μ‚°μžλ₯Ό ν™œμš©ν•˜μ—¬ 볡사해두고, 이λ₯Ό 또 λ‹€λ₯Έ λ³€μˆ˜μ— ν™œμš©ν•  λ°μ΄ν„°λ§Œ 뽑아내어 μ €μž₯ν•œλ‹€.

<μ˜ˆμ‹œ>

const ProductDetail = ({ locationData }) => {
    const [data, setData] = useState();
    const [count, setCount] = useState(1);
    const [isLike, setIsLike] = useState(false);
    useEffect(() => {
        if (locationData) {
            setData(() => {
                return { ...locationData.state.data };
            });
        }
    }, []);

		const discountPrice = (data.price * (100 - data.discountRate)) / 100; // μ—λŸ¬!!!!

    const copyData = { ...data }; // μ „κ°œμ—°μ‚°μž ν™œμš©ν•˜μ—¬ λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ή
    const discountPrice = (copyData.price * (100 - copyData.discountRate)) / 100; // ν• λ‹Ήλœ λ³€μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ μ›ν•˜λŠ” κ°’μœΌλ‘œ ν™œμš©

		return (
			<>
				<p>{discountPrice}</p>
			</>
};

πŸ’­Β κ°œμ„ 


μ™ λ§Œν•˜λ©΄ 데이터λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— μ €μž₯ν•˜μ—¬, ν™œμš©ν•˜μž.

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

0개의 λŒ“κΈ€