νλ‘μ νΈ μ΄κΈ° λ¨κ³μμ μ¬μ©μλ€μ΄ μ± λ΄μμ μμ½κ² μ΄λν μ μλλ‘ λ€λΉκ²μ΄μ λ°λ₯Ό ꡬνν΄μΌ νλ€. μ¬λ¬ νλ©΄μ μ€κ°λ μ±μ νΉμ±μ, μ§κ΄μ μ΄κ³ μ¬μ©νκΈ° μ¬μ΄ λ€λΉκ²μ΄μ λ°λ λ§€μ° μ€μν λΆλΆμ΄μκΈ° λλ¬Έμ, μ΄λ₯Ό μ ꡬννλ κ²μ΄ ν΅μ¬μ΄μλ€.
μ΄λ²μλ νλ¨ λ€λΉκ²μ΄μ λ°λ₯Ό ꡬνν μ½λλ₯Ό 리뷰ν΄λ³΄κ² λ€. μ½λμ μ£Όμ κΈ°λ₯μ νλ©΄μ μ νν λ νμ±νλ μμ΄μ½μ μκ°μ μΌλ‘ ꡬλΆν μ μλλ‘ νλ κ²μ΄λ€.
import React, { useState } from "react"
import home from '../../assets/home.png'
import community from '../../assets/community.png'
import sell from '../../assets/sell.png'
import chatting from '../../assets/chatting.png'
import profile from '../../assets/profile.png'
import { Link } from "react-router-dom"
import './BottomNav.css'
const BottomNav = () => {
const [activeNav, setActiveNav] = useState(1); // νμ±νλ λ€λΉκ²μ΄μ
μμ΄ν
μν κ΄λ¦¬
return (
<nav className="wrapper">
<Link to="/home" className="nav-link" onClick={() => setActiveNav(1)}>
<div>
<img src={home}
className={activeNav === 1 ? "nav-item active" : "nav-item"}
style={{ width: '30%', height: 'auto' }} />
</div>
</Link>
<Link to="/community" className="nav-link" onClick={() => setActiveNav(2)}>
<div>
<img src={community}
className={activeNav === 2 ? "nav-item active" : "nav-item"}
style={{ width: '30%', height: 'auto' }} />
</div>
</Link>
<Link to="/sell" className="nav-link" onClick={() => setActiveNav(3)}>
<div>
<img src={sell}
className={activeNav === 3 ? "nav-item active" : "nav-item"}
style={{ width: '30%', height: 'auto' }} />
</div>
</Link>
<Link to="/chatting" className="nav-link" onClick={() => setActiveNav(4)}>
<div>
<img src={chatting}
className={activeNav === 4 ? "nav-item active" : "nav-item"}
style={{ width: '30%', height: 'auto' }} />
</div>
</Link>
<Link to="/profile" className="nav-link" onClick={() => setActiveNav(5)}>
<div>
<img src={profile}
className={activeNav === 5 ? "nav-item active" : "nav-item"}
style={{ width: '30%', height: 'auto' }} />
</div>
</Link>
</nav>
);
};
export default BottomNav;
useStateλ₯Ό μ¬μ©ν΄ νμ¬ νμ±νλ λ€λΉκ²μ΄μ
νλͺ©μ κ΄λ¦¬ν μ μμλ€. μ΄λ μ±μμ μ¬μ©μκ° μ΄λ νλ©΄μ μλμ§ μ½κ² μΆμ ν μ μλλ‘ ν΄μ£Όμλ€.
κ° λ€λΉκ²μ΄μ
νλͺ©μ Link μ»΄ν¬λνΈλ₯Ό μ¬μ©νμ¬ λΌμ°ν
μ ꡬννμΌλ©°, μμ΄μ½μ΄ ν΄λ¦λ λλ§λ€ setActiveNav ν¨μλ‘ νμ±νλ νλͺ©μ λ³κ²½νλ€.
CSSλ‘ active ν΄λμ€λ₯Ό μ μ©νμ¬, μ΄λ€ νλͺ©μ΄ νμ¬ μ νλμλμ§ μκ°μ μΌλ‘ ꡬλΆν μ μκ² νλ€. μ΄ λΆλΆμ΄ μ¬μ©μ κ²½νμ λμ¬μ£Όμλ€.
λμ μ€νμΌλ§: κ° μμ΄μ½μ μ€νμΌμ style μμ± λμ , styled-componentsλ‘ κ΄λ¦¬νλ©΄ λ μ μ°νκ³ νμ₯ κ°λ₯ν μ½λκ° λ κ² κ°λ€. νμ¬λ κ°κ°μ μμ΄μ½μ λν΄ μΌμΌμ΄ μ€νμΌμ λ£κ³ μλλ°, styled-componentsλ₯Ό νμ©νλ©΄ μ½λ μ€λ³΅μ μ€μΌ μ μλ€.
λ€λΉκ²μ΄μ λ°λ μ¬μ©μ κ²½νμμ μ€μν μν μ νλ€. μ΄λ² ꡬνμ ν΅ν΄ κΈ°λ³Έμ μΈ κΈ°λ₯μ μ μλνμ§λ§, ν₯ν λ λμ μ½λ ꡬ쑰μ μ κ·Όμ± κ°μ μ ν΅ν΄ λ³΄λ€ μμ±λ λμ λ€λΉκ²μ΄μ λ°λ₯Ό λ§λ€ μ μμ κ²μ΄λ€.