Headerμ λ μ€ν λ μΆκ° λ²νΌμ ν΄λ¦νλ©΄ λ μ€ν λ μΆκ° νΌμ΄ λͺ¨λ¬λ‘ λ¨λλ‘ κ΅¬νν΄ μ£ΌμΈμ- μ΄μ λ¨κ³μμ λ§λ€μ΄λμλ
AddRestaurantModalμ κ·Έλλ‘ μ¬μ©ν©λλ€.
- μ΄μ λ¨κ³μμ λ§λ€μ΄λμλ
- μΉ΄ν
κ³ λ¦¬λ₯Ό μ ννκ³ ,
<input/>,<textarea/>μ κ°μ μ λ ₯ν λ€ 'μΆκ°νκΈ°' λ²νΌμ ν΄λ¦νλ©΄ λ μ€ν λ λͺ©λ‘μ μΆκ°λλλ‘ κ΅¬νν΄ μ£ΌμΈμ.- μ ν¨μ± κ²μ¬λ νμ§ μμ΅λλ€. μμ£Ό κ°λ¨νκ² μ λ ₯κ°μ μ²λ¦¬ν΄λ³΄λ ꡬνλ§ ν΄λ μΆ©λΆν©λλ€.
- idλ
Date.now()κ°μ μμλ‘ ν λΉν©λλ€.
- (optional) μ¬μ¬μ©ν μ μλ Modal μ»΄ν¬λνΈλ₯Ό λ§λ€μ΄μ
AddRestaurantModal,RestaurantDetailModalμ Modal μ»΄ν¬λνΈλ₯Ό νμ©ν΄ ꡬννλ κ²μΌλ‘ κ°μ ν΄ λ³΄μΈμ
- controlled vs uncontrolled
- children props
μ¬μ¬μ©ν μ μλ λͺ¨λ¬μ λ§λ€ λ
childrenμ νμ©ν΄ 보μΈμ. μλμ κ°μ μμΌλ‘ UIλ₯Ό ꡬμ±ν μ μμ΅λλ€.
// μ€λͺ
μ μν μμμ© λ§ν¬μ
μ
λλ€. μ€μ λ‘ μ¬μ©νλ λ§ν¬μ
μ template/ νμμ htmlμ μ°Έκ³ νκ±°λ μ§μ μνλλλ‘ κ΅¬ννμ¬ μ¬μ©ν΄ μ£ΌμΈμ.
// λ°λμ μλμ κ°μ νμμΌλ‘ μΈ νμλ μμ΅λλ€. μνλ λ°©μλλ‘ μ¬μ¬μ© κ°λ₯ν <Modal/> μ»΄ν¬λνΈλ₯Ό λ§λ€μ΄ 보μΈμ.
// AddRestaurantModal.jsx
<Modal title="μλ‘μ΄ μμμ " onClose={onClose}>
<form></form>
</Modal>
// RestaurantDetailModal.jsx
<Modal title={restaurant.name} onClose={onClose}>
<div className="restaurant-info"></div>
<div className="button-container"></div>
</Modal>- μ§ν μκ°: (optional μ μΈ) 2μκ° λ΄μ μλ£νλ κ²μ λͺ©νλ‘ ν©λλ€.