-
νλ‘μ νΈ TIL (4) - [ λλ²κΉ μ μ€μμ± & ν¨μν νλ‘κ·Έλλ°μ μ€μμ± ]νλ‘μ νΈ λ¦¬λ·°/Book-Square 2020. 9. 18. 18:07
μ€λ ν μΌ π
input νκ·Έλ₯Ό μ¬μ©ν λ μ£Όμν μ μ νμμ μ μκ³ μλ€κ³ μκ°νμκ³ λ λ§μ input νκ·Έλ₯Ό λ€λ€λ³΄μμμλ λΆκ΅¬νκ³ μ μ΄λ° μ€μλ₯Ό νλμ§ μκ΄΄κ°μ΄ λ€μμ΅λλ€......
μμνκΈ°μ μμ μ κ° κ΅¬ννκ³ μ νλ λ‘μ§μ λ€μκ³Ό κ°μ΅λλ€.
- μ μ κ° λ νκ° μμ±νκΈ°λ₯Ό ν΄λ¦νμ¬ WriteReport νμ΄μ§μ μ€λ©΄ κΈ°μ‘΄μ μλ λ νκ° λ³΄μ¬μ£ΌκΈ°
- κΈ°μ‘΄μ μλ λ νκ°μ μμ λ²νΌμ ν΅ν΄ μμ ν μ μλ€.
- μμ λ²νΌμ λλ₯΄λ©΄ κΈ°μ‘΄μ μλ valueκ°μ μ λ ₯νκ³ μ νλ value κ°μ λν΄μ μμ ν μ μλ€.
μ΄ λ‘μ§μ μννκΈ° μν΄μ input μμ± μ€ readOnlyλΌλ μμ±μ μ¬μ©νκ² λμμ΅λλ€.
readOnly μμ±μ inputκ°μ΄ μ½κΈ° μ μ©μΈμ§ μλμ§λ₯Ό boolean κ°μΌλ‘ νλ¨νλ μμ±μ λλ€.
μμ λ²νΌμ ν΄λ¦νλ©΄ inputμ μλ readOnly μμ±μ true(μ½κΈ°μ μ©)μμ falseλ‘ λ°κΏμ€μΌλ‘μ¨ input κ°μ μμ ν μ μκ² λ©λλ€.
λ¨Όμ κΈ°μ‘΄μ μλ λ νκ° κΈμ λΆλ¬μ inputμ°½μ 보μ¬μ£ΌκΈ° μν΄ placeholder μμ±μ μ΄ λ νκ° κΈμ λ£μ΄μ£Όμμ΅λλ€.
<input type="text" placeholder={reportList.reportMemo} readOnly={clickReportModified} />
κ·Έλ¦¬κ³ μμ λ²νΌμ ν΄λ¦νκ² λλ©΄ ν΄λΉ inputμ placeholder κ°μ κ°μ Έμ input.valueμ ν λΉνλ λ°©μμ μ¬μ©νμμΌλ μ΄ λ°©λ²μ μ¬μ©νλκΉ μμ νκ³ μ νλ inputνκ·Έμ value κ°μ΄ μ λ€μ΄μ€μ§ μλ νμμ κ²ͺκ² λμμ΅λλ€.
λ‘μ§μλ λ¬Έμ κ° μμμ§λ§ κ·Έκ²λ³΄λ€ κΈ°κ» readOnly μμ±μ ꡬκΈλ§νμ¬ νμ΅ν΄λκ³ placeholderμ κΈ°μ‘΄ λ νκ° κΈμ 보μ¬μ£Όλ €κ³ νκ³ μμΌλ μ λ input νκ·Έμ readOnlyμμ±μ μ λλ‘ νμ©νκ³ μμ§ λͺ»νκ³ μμμ΅λλ€.
μ¬κΈ°μ μ½λλ₯Ό λ€μκ³Ό κ°μ΄ λ³κ²½νκ² λλ©΄μ inputμ value μμ±μ μ§μ νκ² λλ λ λ²μ§Έ μ€μλ₯Ό νκ² λ©λλ€.
<input type="text" value={reportList.reportMemo} />
valueκ°μ λ±λ‘λμ΄ μλ λ νκ° κΈμ κ°μ Έμ λ£μ΄μ£Όκ² λμκ³ μμ λ²νΌμ ν΄λ¦νλ©΄ readOnlyκ°μ falseλ‘ λ°κΏμ£Όλ©΄μ onchange μ΄λ²€νΈλ₯Ό ν΅ν΄ μμ νκ³ μ νλ valueκ°μ λ£μ΄μ£Όλλ‘ λ‘μ§μ λ³κ²½νκ² λ©λλ€.
κ²°λ‘ μ μΌλ‘ μ λ λ¬Έμ ν΄κ²°μ μν΄ μ΄λμ λ¬Έμ κ° λ°μνμλμ§ λλ²κΉ μ νλ €κ³ νμ§ μμκ³ λλ²κΉ μ νμ§ μμΌλ μ΄λμ λ¬Έμ κ° λ°μνκ±΄μ§ μ λλ‘ νμ νμ§λ λͺ»ν΄μ μλ±ν μ½λλ₯Ό μμ νκ³ μκ³ μλ μ§μκΉμ§λ νμ©νμ§ λͺ»νμ΅λλ€.
λν νλμ ν¨μμ λͺ¨λ λ‘μ§μ λ€ λ£κ³ μ¬μ©νλ €κ³ νλ κ°λ μ±λ λ¨μ΄μ§κ² λμκ³ , Reactλ ν¨μν νλ‘κ·Έλλ°μ μ² νμ λ°μ λ§λ€μ΄μ§ λΌμ΄λΈλ¬λ¦¬λΌλ κ²κ³Ό Hookμ μ¬μ©νκ³ μμμλ λΆκ΅¬νκ³ Hookμ ν¨μν νλ‘κ·Έλλ° νΉμ§μΈ λͺ©μ μ±( μκ³ λ¦¬μ¦μ λͺ μνλ κ² λ³΄λ€ λͺ©ν(ν¨μ)λ₯Ό λͺ μνλλ° μ€μ¬. ) μ μΆκ΅¬ν¨μ νμν κ²μμ μ λλ‘ μΈμ§νμ§ λͺ»νκ³ μ¬μ©νκ³ μμμ΅λλ€.
ν΄κ²° κ³Όμ
λ¨Όμ inputμ value μμ±μ μ§μ νλ©΄ input κ°μ΄ λ³κ²½λμ§ μλλ€λ μ λΆν° λλ²κΉ μ νκΈ° μμνμ΅λλ€.
const [input, setInput] = useState(""); useEffect(() => { setInput(reportList.reportMemo) },[]); const onChangeHandler = (e) => { setInput(e.target.value); }
useEffectλ₯Ό μ¬μ©νμ¬ input κ°μ λ±λ‘λμ΄ μλ λ νκ° κΈμ λ£μ΄μ£Όμ΄ λ λλ§ λ λ inputμ valueμ κ°μ΄ λ€μ΄κ° μ μλλ‘ μμ±ν΄μ£Όμκ³
onChangeHandler ν¨μλ₯Ό μ μΈνμ¬ inputμ onChange μ΄λ²€νΈκ° μΌμ΄λ λλ§λ€ setInput(e.target.value); λ‘ μν κ°μ μ λ°μ΄νΈ ν΄μ£Όκ³ μμ΅λλ€.
<input type="text" value={input} onChange={(e) => onChangeHandler(e)} readOnly={clickReportModified} />
onChange μ΄λ²€νΈλ₯Ό ν΅ν΄ λ€μ΄μ€λ κ°μ λ΄μ inputμ valueμ λ΄μμ€μΌλ‘μ¨ input κ°μ΄ λ³κ²½λ λλ§λ€ νλ©΄μ 보μ¬μ§ μ μλλ‘ μ€μ μ΄ μλ£λμμ΅λλ€.
μμ μλ£ λ²νΌμ λλ₯΄λ©΄ μ΄ input μν κ°μ κ°μ§κ³ λΆλͺ¨ μ»΄ν¬λνΈμμ Propsλ‘ λ΄λ €μ€ ν¨μμ μ λ¬μΈμλ‘ κ°μ λ£μ΄μ£Όλ©΄μ μλ²μ λ νκ° μμ μμ²μ μ μμ μΌλ‘ μ λ³΄λΌ μ μκ² λμμ΅λλ€.
λ§μΉλ©°
μμ μ½λλ μμ νλ μ½λμ μΌλΆλ₯Ό κ°μ Έμ μ μ κ²μ΄κ³ μ΄ μ½λ μΈμλ μ¬λ¬ λ‘μ§λ€μ΄ μλλ° μ ν¨μν νλ‘κ·Έλλ°μ ν΄μΌνλμ§ λλ μ μμμ΅λλ€.
ν¨μλ₯Ό μ μΈν λμλ κ·Έ ν¨μκ° μ΄λ ν μΌμ νκ³ μλμ§ λͺ νν΄μΌνκ³ νμ€νκ² λΆλ¦¬ν΄μ£Όμ΄μΌ ν©λλ€. νλμ ν¨μμ λͺ¨λ λ‘μ§μ λ€ λ£κ² λλ μ΄λμ μλ¬κ° λ¬λμ§ λλ²κΉ μ‘°μ°¨ μλν μ μμ΄μ λ§μ μκ°μ νλΉνκ³ μλ±ν μ½λμμ μ½μ§μ νκ² λμμ΅λλ€.
ν¨μν νλ‘κ·Έλλ°μ λ€μ νλ² λμ§μ΄ μκ°νλ©° μ½λλ₯Ό μμ νκ³ λλ μ½λμλ λ° μ΄μμΌλ‘ μ€μκ³ κ°λ μ±λ μ’μμ§λ©° λΆνμν λ‘μ§λ μ κ±°ν μ μμμ΅λλ€.
( μ½λ νμ€νμ€ μμ±ν λλ§λ€ λλ²κΉ μ μ€μμ±κ³Ό ν¨μ μ μΈμ λͺ©μ μ±μ μκ°νκ³ μμ±ν΄μΌκ² λ€λ κΉ¨λ¬μμ μ»μ΄κ° μ μμλ μκ°μ΄μμ΅λλ€ π)
'νλ‘μ νΈ λ¦¬λ·° > Book-Square' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ‘μ νΈ TIL (5) - [ XML -> JSON λ³ν, CORS μ΄μ ] (0) 2020.09.28 νλ‘μ νΈ TIL (3) - [ μ¬μ©μκ° μμ μμ² μ κ²½κ³ μ°½ λμμ£ΌκΈ° ] (0) 2020.09.16 νλ‘μ νΈ TIL (2) - [ window.location.replace() ] (0) 2020.09.14 νλ‘μ νΈ TIL (1) - [쑰건λΆλ λλ§ & Hooks μ΅μ ν] (0) 2020.09.11