@@ -4,7 +4,7 @@ title: "<input>"
44
55<Intro >
66
7- [ ๋ด์ฅ ๋ธ๋ผ์ฐ์  ` <input> `  ์ปดํฌ๋ํธ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input ) ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์ข
๋ฅ์ ํผ ์
๋ ฅ<sup >Input</sup >์ ๋ ๋๋ง ํ   ์ ์์ต๋๋ค.
7+ [ ๋ด์ฅ ๋ธ๋ผ์ฐ์  ` <input> `  ์ปดํฌ๋ํธ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input ) ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์ข
๋ฅ์ ํผ ์
๋ ฅ<sup >Input</sup >์ ๋ ๋๋งํ   ์ ์์ต๋๋ค.
88
99``` js 
1010< input / > 
@@ -91,8 +91,8 @@ You can [make an input controlled](#controlling-an-input-with-a-state-variable)
9191#### ์ฃผ์ ์ฌํญ {/* caveats* /}  
9292
9393-  ์ฒดํฌ๋ฐ์ค์๋ ` value `  (๋๋ ` defaultValue ` )๊ฐ ์๋ ` checked `  (๋๋ ` defaultChecked ` )๊ฐ ํ์ํฉ๋๋ค.
94- -  ํ
์คํธ ์
๋ ฅ ์์ญ์ ๋ฌธ์์ด ` value `  prop์  ๋ฐ์ ๊ฒฝ์ฐ [ ์ ์ด๋๋ ๊ฒ์ผ๋ก ์ทจ๊ธ] ( #controlling-an-input-with-a-state-variable ) ๋ฉ๋๋ค.
95- -  ์ฒดํฌ๋ฐ์ค ๋๋ ๋ผ๋์ค ๋ฒํผ์ด ๋ถ๋ฆฌ์ธ ` checked `  prop์  ๋ฐ์ ๊ฒฝ์ฐ [ ์ ์ด๋๋ ๊ฒ์ผ๋ก ์ทจ๊ธ] ( #controlling-an-input-with-a-state-variable ) ๋ฉ๋๋ค.
94+ -  ํ
์คํธ ์
๋ ฅ ์์ญ์ ๋ฌธ์์ด ` value `  Prop์  ๋ฐ์ ๊ฒฝ์ฐ [ ์ ์ด๋๋ ๊ฒ์ผ๋ก ์ทจ๊ธ] ( #controlling-an-input-with-a-state-variable ) ๋ฉ๋๋ค.
95+ -  ์ฒดํฌ๋ฐ์ค ๋๋ ๋ผ๋์ค ๋ฒํผ์ด ๋ถ๋ฆฌ์ธ ` checked `  Prop์  ๋ฐ์ ๊ฒฝ์ฐ [ ์ ์ด๋๋ ๊ฒ์ผ๋ก ์ทจ๊ธ] ( #controlling-an-input-with-a-state-variable ) ๋ฉ๋๋ค.
9696-  ์
๋ ฅ์ ์ ์ด๋๋ฉด์ ๋์์ ๋น์ ์ด๋  ์ ์์ต๋๋ค.
9797-  ์
๋ ฅ์ ์๋ช
์ฃผ๊ธฐ ๋์ ์ ์ด ๋๋ ๋น์ ์ด ์ํ๋ฅผ ์ค๊ฐ ์ ์์ต๋๋ค.
9898-  ์ ์ด๋๋ ์
๋ ฅ์ ๋ชจ๋ ๋ฐฑ์
 ๊ฐ์ ๋๊ธฐ์ ์ผ๋ก ์
๋ฐ์ดํธํ๋ ` onChange `  ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ํ์ํฉ๋๋ค.
@@ -103,7 +103,7 @@ You can [make an input controlled](#controlling-an-input-with-a-state-variable)
103103
104104### ๋ค์ํ ์ ํ์ ์
๋ ฅ ํ์ {/* displaying-inputs-of-different-types* /}  
105105
106- ์
๋ ฅ์ ํ์ํ๊ธฐ ์ํด ` <input> `  ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋ง ํ์ธ์ . ๊ธฐ๋ณธ์ ์ผ๋ก ํ
์คํธ ์
๋ ฅ์ด ๋ฉ๋๋ค . ์ฒดํฌ๋ฐ์ค์๋ ` type="checkbox" ` ๋ฅผ , ๋ผ๋์ค ๋ฒํผ์๋ ` type="radio" `  ์ ๋ฌํ๊ฑฐ๋ [ ๋ค๋ฅธ ์
๋ ฅ ํ์
๋ค ์ค์  ํ๋] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types ) ๋ฅผ ์ ๋ฌํ  ์ ์์ต๋๋ค.
106+ ์
๋ ฅ์ ํ์ํ๊ธฐ ์ํด ` <input> `  ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ์ธ์ . ๊ธฐ๋ณธ์ ์ผ๋ก ํ
์คํธ๋ก ์
๋ ฅ๋ฉ๋๋ค . ์ฒดํฌ๋ฐ์ค์๋ ` type="checkbox" ` , ๋ผ๋์ค ๋ฒํผ์๋ ` type="radio" ` ๋ฅผ  ์ ๋ฌํ๊ฑฐ๋ [ ๋ค๋ฅธ ์
๋ ฅ ์ ํ๋ค ์ค  ํ๋] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types ) ๋ฅผ ์ ๋ฌํ  ์ ์์ต๋๋ค.
107107
108108<Sandpack >
109109
@@ -148,11 +148,11 @@ input { margin: 5px; }
148148
149149--- 
150150
151- ### ์
๋ ฅ์ ๋ผ๋ฒจ  ์ ๊ณตํ๊ธฐ {/* providing-a-label-for-an-input* /}  
151+ ### ์
๋ ฅ์ ๋ ์ด๋ธ  ์ ๊ณตํ๊ธฐ {/* providing-a-label-for-an-input* /}  
152152
153- ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋  ` <input> `   ์ [ ` <label> ` ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label )  ํ๊ทธ ์์ ๋๊ฒ ๋๋๋ฐ  ์ด๋ ๊ฒ ํ๋ฉด ํด๋น ๋ผ๋ฒจ์ด  ํด๋น ์
๋ ฅ๊ณผ ์ฐ๊ด๋จ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ผ๋ฒจ์  ํด๋ฆญํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์
๋ ฅ์ ์๋์ ์ผ๋ก ํฌ์ปค์ค๋ฅผ ๋ง์ถฅ๋๋ค. ์คํฌ๋ฆฐ ๋ฆฌ๋๋ ์ฌ์ฉ์๊ฐ ์ฐ๊ด๋ ์
๋ ฅ์ ํฌ์ปค์ค๋ฅผ ๋ง์ถ ๋ ๋ผ๋ฒจ  ์บก์
์ ์ฝ๊ฒ ๋๋ฏ๋ก ์ด ๋ฐฉ์์ ์ ๊ทผ์ฑ์ ์ํด์๋ ํ์์
๋๋ค.
153+ ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋  ` <input> ` ์ [ ` <label> ` ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label )  ํ๊ทธ ์์ ์กด์ฌํ๋๋ฐ,  ์ด๋ ๊ฒ ํ๋ฉด ํด๋น ๋ ์ด๋ธ์ด  ํด๋น ์
๋ ฅ๊ณผ ์ฐ๊ด๋จ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ ์ด๋ธ์  ํด๋ฆญํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์
๋ ฅ์ ์๋์ ์ผ๋ก ํฌ์ปค์ค๋ฅผ ๋ง์ถฅ๋๋ค. ์คํฌ๋ฆฐ ๋ฆฌ๋๋ ์ฌ์ฉ์๊ฐ ์ฐ๊ด๋ ์
๋ ฅ์ ํฌ์ปค์ค๋ฅผ ๋ง์ถ ๋ ๋ ์ด๋ธ  ์บก์
์ ์ฝ๊ฒ ๋๋ฏ๋ก ์ด ๋ฐฉ์์ ์ ๊ทผ์ฑ์ ์ํด์๋ ํ์์
๋๋ค.
154154
155- ` <label> `  ์์ ` <input> `   ์ ๊ฐ์ ์ ์๋ค๋ฉด, ` <input id> `  ์ [ ` <label htmlFor> ` ] ( https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/htmlFor ) ์ ๋์ผํ ID๋ฅผ ์ ๋ฌํด์ ์ฐ๊ด์ฑ์ ๋ถ์ฌํ์ธ์. ํ ์ปดํฌ๋ํธ์ ์ฌ๋ฌ ์ธ์คํด์ค ๊ฐ ์ถฉ๋์ ํผํ๋ ค๋ฉด [ ` useId ` ] ( /reference/react/useId ) ๋ก ๊ทธ๋ฌํ ID๋ฅผ ์์ฑํ์ธ์.
155+ ` <label> `  ์์ ` <input> ` ์ ๊ฐ์ ์ ์๋ค๋ฉด, ` <input id> `  ์ [ ` <label htmlFor> ` ] ( https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/htmlFor ) ์ ๋์ผํ ID๋ฅผ ์ ๋ฌํด์ ์ฐ๊ด์ฑ์ ๋ถ์ฌํ์ธ์. ํ ์ปดํฌ๋ํธ์ ์ฌ๋ฌ ์ธ์คํด์ค ๊ฐ ์ถฉ๋์ ํผํ๋ ค๋ฉด [ ` useId ` ] ( /reference/react/useId ) ๋ก ๊ทธ๋ฌํ ID๋ฅผ ์์ฑํ์ธ์.
156156
157157<Sandpack >
158158
@@ -183,9 +183,9 @@ input { margin: 5px; }
183183
184184--- 
185185
186- ### ์
๋ ฅ์ ์ด๊น๊ฐ  ์ ๊ณตํ๊ธฐ {/* providing-an-initial-value-for-an-input* /}  
186+ ### ์
๋ ฅ์ ์ด๊ธฐ๊ฐ  ์ ๊ณตํ๊ธฐ {/* providing-an-initial-value-for-an-input* /}  
187187
188- ์
๋ ฅ์ ์ด๊น๊ฐ์  ์ ํ์ ์ผ๋ก ์ง์ ํ  ์ ์์ต๋๋ค. ํ
์คํธ ์
๋ ฅ์ ์ํ ` defaultValue `  ๋ฌธ์์ด๋ก  ์ ๋ฌํ์ธ์. ๋์  ์ฒดํฌ๋ฐ์ค์ ๋ผ๋์ค ๋ฒํผ์ ` defaultChecked `  ๋ถ๋ฆฌ์ธ์ผ๋ก ์ด๊น๊ฐ์  ์ง์ ํด์ผ ํฉ๋๋ค.
188+ ์
๋ ฅ์ ์ด๊ธฐ๊ฐ์  ์ ํ์ ์ผ๋ก ์ง์ ํ  ์ ์์ต๋๋ค. ํ
์คํธ ์
๋ ฅ์ ์ํ ` defaultValue `  ๋ฌธ์์ด์  ์ ๋ฌํ์ธ์. ๋์  ์ฒดํฌ๋ฐ์ค์ ๋ผ๋์ค ๋ฒํผ์ ` defaultChecked `  ๋ถ๋ฆฌ์ธ์ผ๋ก ์ด๊ธฐ๊ฐ์  ์ง์ ํด์ผ ํฉ๋๋ค.
189189
190190<Sandpack >
191191
@@ -237,7 +237,7 @@ input { margin: 5px; }
237237
238238### ํผ ์ ์ถ ์ ์
๋ ฅ ๊ฐ ์ฝ๊ธฐ {/* reading-the-input-values-when-submitting-a-form* /}  
239239
240- ์
๋ ฅ๊ณผ [ ` <button type="submit"> ` ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button )  ๋ฐ๊นฅ์ [ ` <form> ` ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form )   ์ผ๋ก ๊ฐ์ธ๋ฉด ๋ฒํผ์ ํด๋ฆญํ์ ๋ ` <form onSubmit> `  ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ํธ์ถ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ ํ์ฌ URL์ ํผ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ํ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ๋ฉฐ ์ด๋ฌํ ๋์์ ` e.preventDefault() ` ๋ฅผ ํธ์ถํ์ฌ ๋ฎ์ด์ธ ์ ์์ต๋๋ค. ํผ ๋ฐ์ดํฐ๋ [ ` new FormData(e.target) ` ] ( https://developer.mozilla.org/en-US/docs/Web/API/FormData ) ๋ก ์ฝ์ผ์ธ์.
240+ ์
๋ ฅ๊ณผ [ ` <button type="submit"> ` ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button )  ๋ฐ๊นฅ์ [ ` <form> ` ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form ) ์ผ๋ก ๊ฐ์ธ๋ฉด ๋ฒํผ์ ํด๋ฆญํ์ ๋ ` <form onSubmit> `  ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ํธ์ถ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ ํ์ฌ URL์ ํผ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ํ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ๋ฉฐ,  ์ด๋ฌํ ๋์์ ` e.preventDefault() ` ๋ฅผ ํธ์ถํ์ฌ ๋ฎ์ด์ธ ์ ์์ต๋๋ค. ํผ ๋ฐ์ดํฐ๋ [ ` new FormData(e.target) ` ] ( https://developer.mozilla.org/en-US/docs/Web/API/FormData ) ๋ก ์ฝ์ผ์ธ์.
241241<Sandpack >
242242
243243``` js 
@@ -297,26 +297,26 @@ input { margin: 5px; }
297297
298298<Pitfall >
299299
300- ๊ธฐ๋ณธ์ ์ผ๋ก ` <form> `  ๋ด๋ถ์ * ์ด๋*  ` <button> ` ์ด๋  ํผ์ ์ ์ถํฉ๋๋ค. ๋ป๋ฐ์ธ๊ฐ์? ์ปค์คํ
 Button React ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ` <button> `  ๋์  [ ` <button type="button"> ` ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/button )  ๋ฐํ์ ๊ณ ๋ คํ์ธ์. ๋ช
์์ฑ์ ๋ถ์ฌํ๊ธฐ ์ํด ํผ ์ ์ถ์ฉ ๋ฒํผ์ผ๋ก๋ ` <button type="submit"> ` ์ ์ฌ์ฉํ์ธ์.
300+ ๊ธฐ๋ณธ์ ์ผ๋ก ` <form> `  ๋ด๋ถ์ * ์ด๋*  ` <button> ` ์ด๋  ํผ์ ์ ์ถํฉ๋๋ค. ๋ป๋ฐ์ธ๊ฐ์? ์ปค์คํ
 ` Button `  React ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ` <button> `  ๋์  [ ` <button type="button"> ` ] ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/button )  ๋ฐํ์ ๊ณ ๋ คํ์ธ์. ๋ช
์์ฑ์ ๋ถ์ฌํ๊ธฐ ์ํด ํผ ์ ์ถ์ฉ ๋ฒํผ์ผ๋ก๋ ` <button type="submit"> ` ์ ์ฌ์ฉํ์ธ์.
301301
302302</Pitfall >
303303
304304--- 
305305
306306### State ๋ณ์๋ก ์
๋ ฅ ์ ์ดํ๊ธฐ {/* controlling-an-input-with-a-state-variable* /}  
307307
308- ` <input /> `   ๊ณผ ๊ฐ์ ์
๋ ฅ์ * ์ ์ด๋์ง ์์ต๋๋ค.*  ` <input defaultValue="Initial text" /> ` ์ ๊ฐ์ [ ์ด๊ธฐ๊ฐ์ ์ ๋ฌ] ( #providing-an-initial-value-for-an-input ) ํ๋๋ JSX๋ ๋น์ฅ์ ๊ฐ์ ์ ์ดํ์ง ์๊ณ  ์ด๊น๊ฐ๋ง์  ์ง์ ํฉ๋๋ค.
308+ ` <input /> ` ๊ณผ ๊ฐ์ ์
๋ ฅ์ * ์ ์ด๋์ง ์์ต๋๋ค.*  ` <input defaultValue="Initial text" /> ` ์ ๊ฐ์ [ ์ด๊ธฐ๊ฐ์ ์ ๋ฌ] ( #providing-an-initial-value-for-an-input ) ํ๋๋ JSX๋ ๋น์ฅ์ ๊ฐ์ ์ ์ดํ์ง ์๊ณ  ์ด๊ธฐ๊ฐ๋ง์  ์ง์ ํฉ๋๋ค.
309309
310310** _ ์ ์ด๋๋_  ์
๋ ฅ์ ๋ ๋๋งํ๋ ค๋ฉด, ` value `  (๋๋ ์ฒดํฌ๋ฐ์ค์ ๋ผ๋์ค์๋ ` checked ` ) Prop ์ ์ ๋ฌํ์ธ์.**  React๋ ์ ๋ฌํ ` value ` ๋ฅผ ํญ์ ๊ฐ๋๋ก ์
๋ ฅ์ ๊ฐ์ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก [ State ๋ณ์] ( /reference/react/useState ) ๋ฅผ ์ ์ธํ์ฌ ํ  ์ ์์ต๋๋ค.
311311
312312``` js  {2,6,7}
313313function  Form () {
314-   const  [firstName , setFirstName ] =  useState (' ' //  state  ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค.
314+   const  [firstName , setFirstName ] =  useState (' ' //  State  ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค.
315315  //  ...
316316  return  (
317317    < input
318-       value= {firstName} //  ์
๋ ฅ ๊ฐ์ด state  ๋ณ์์ ์ผ์นํ๋๋ก ๊ฐ์ ํฉ๋๋ค.
319-       onChange= {e  =>  setFirstName (e .target .value )} //  input์  ํธ์งํ  ๋๋ง๋ค state  ๋ณ์๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค.
318+       value= {firstName} //  ์
๋ ฅ ๊ฐ์ด State  ๋ณ์์ ์ผ์นํ๋๋ก ๊ฐ์ ํฉ๋๋ค.
319+       onChange= {e  =>  setFirstName (e .target .value )} //  ์
๋ ฅ์  ํธ์งํ  ๋๋ง๋ค State  ๋ณ์๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค.
320320    / > 
321321  );
322322}
@@ -358,7 +358,7 @@ function Form() {
358358        < / button> 
359359` ` ` 
360360
361- ์ ์ด๋๋ ์ปดํฌ๋ํธ์ ์ ๋ฌ๋๋ `  value` ๋ ` undefined `   ๋ ` null ` ์ด ๋์ด์๋ ์๋ฉ๋๋ค. ์๋์ ` `  ํ๋์ฒ๋ผ ์ด๊น๊ฐ์  ๋น์๋์ด์ผ ํ๋ ๊ฒฝ์ฐ state  ๋ณ์๋ฅผ ๋น ๋ฌธ์์ด(` ' ' ` )๋ก ์ด๊ธฐํ ํ์ธ์.
361+ ์ ์ด๋๋ ์ปดํฌ๋ํธ์ ์ ๋ฌ๋๋ `  value` ๋ ` undefined ` ๋ ` null ` ์ด ๋์ด์๋ ์๋ฉ๋๋ค. ์๋์ ` `  ํ๋์ฒ๋ผ ์ด๊ธฐ๊ฐ์  ๋น์๋์ด์ผ ํ๋ ๊ฒฝ์ฐ State  ๋ณ์๋ฅผ ๋น ๋ฌธ์์ด(` ' ' ` )๋ก ์ด๊ธฐํ ํ์ธ์.
362362
363363<Sandpack> 
364364
@@ -410,7 +410,7 @@ p { font-weight: bold; }
410410
411411<Pitfall> 
412412
413- **์
๋ ฅ์ `  onChange`  ์์ด ` ` ๋ฅผ ์ ๋ฌํ๋ฉด ํด๋น ์
๋ ฅ์ ํ์ดํ์ ํ  ์ ์๊ฒ ๋ฉ๋๋ค.** ` ` ๋ฅผ ์ ๋ฌํ์ฌ ์
๋ ฅ์ ์ ์ดํ๋ฉด ํญ์ ํด๋น value๋ฅผ  ๊ฐ์ง๋๋ก *๊ฐ์ ํฉ๋๋ค*. ๊ทธ๋ฌ๋ฏ๋ก state  ๋ณ์๋ฅผ ` ` ๋ก ์ ๋ฌํด๋ ` `  ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ด์์ ํด๋น state  ๋ณ์๋ฅผ ๋๊ธฐ์ ์ผ๋ก ์
๋ฐ์ดํธํ์ง ์์ผ๋ฉด React๋ ํค๋ณด๋๋ฅผ ๋๋ฅผ ๋๋ง๋ค ์
๋ ฅ์ ์ฒ์ ์ง์ ํ ` ` ๋ก ๋๋๋ฆฌ๊ฒ ๋ฉ๋๋ค.
413+ **์
๋ ฅ์ `  onChange`  ์์ด ` ` ๋ฅผ ์ ๋ฌํ๋ฉด ํด๋น ์
๋ ฅ์ ํ์ดํ์ ํ  ์ ์๊ฒ ๋ฉ๋๋ค.** ` ` ๋ฅผ ์ ๋ฌํ์ฌ ์
๋ ฅ์ ์ ์ดํ๋ฉด ํญ์ ํด๋น ๊ฐ์  ๊ฐ์ง๋๋ก *๊ฐ์ ํฉ๋๋ค*. ๊ทธ๋ฌ๋ฏ๋ก State  ๋ณ์๋ฅผ ` ` ๋ก ์ ๋ฌํด๋ ` `  ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ด์์ ํด๋น State  ๋ณ์๋ฅผ ๋๊ธฐ์ ์ผ๋ก ์
๋ฐ์ดํธํ์ง ์์ผ๋ฉด React๋ ํค๋ณด๋๋ฅผ ๋๋ฅผ ๋๋ง๋ค ์
๋ ฅ์ ์ฒ์ ์ง์ ํ ` ` ๋ก ๋๋๋ฆฌ๊ฒ ๋ฉ๋๋ค.
414414
415415</Pitfall> 
416416
@@ -468,7 +468,7 @@ function SignupForm() {
468468
469469### ํ
์คํธ ์
๋ ฅ์ ํ์ดํ์ ํด๋ ์
๋ฐ์ดํธ๋์ง ์์ต๋๋ค {/*my-text-input-doesnt-update-when-i-type-into-it*/} 
470470
471- ` `  ์์ด ` ` ๋ง ์ ๋ฌํ์ฌ ์
๋ ฅ์ ๋ ๋๋งํ๋ฉด ์ฝ์์ ์๋ฌ๊ฐ  ๋ํ๋ฉ๋๋ค.
471+ ` `  ์์ด ` ` ๋ง ์ ๋ฌํ์ฌ ์
๋ ฅ์ ๋ ๋๋งํ๋ฉด ์ฝ์์ ์ค๋ฅ๊ฐ  ๋ํ๋ฉ๋๋ค.
472472
473473` ` ` 
474474//  ๐ด ๋ฒ๊ทธ: ์ ์ด๋๋ `<input>`์ `onChange` ํธ๋ค๋ฌ๊ฐ ์์ต๋๋ค.
@@ -477,25 +477,25 @@ function SignupForm() {
477477
478478<ConsoleBlock level="error"> 
479479
480- ํผ ํ๋์ `  onChange`  ํธ๋ค๋ฌ ์์ด ` `  prop๋ง  ์ ๋ฌํ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๊ธฐ ์ ์ฉ ํ๋๋ฅผ ๋ ๋๋งํ๊ฒ ๋ฉ๋๋ค. ํ๋๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅํด์ผ ํ๋ ๊ฒฝ์ฐ ` ` ๋ฅผ ์ฌ์ฉํ๊ณ  ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ` `  ๋๋ ` ` ๋ฅผ ์ค์ ํ์ธ์.
480+ ํผ ํ๋์ `  onChange`  ํธ๋ค๋ฌ ์์ด ` `  Prop๋ง  ์ ๋ฌํ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๊ธฐ ์ ์ฉ ํ๋๋ฅผ ๋ ๋๋งํ๊ฒ ๋ฉ๋๋ค. ํ๋๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅํด์ผ ํ๋ ๊ฒฝ์ฐ ` ` ๋ฅผ ์ฌ์ฉํ๊ณ  ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ` `  ๋๋ ` ` ๋ฅผ ์ค์ ํ์ธ์.
481481
482482</ConsoleBlock> 
483483
484- ์๋ฌ  ๋ฉ์์ง๊ฐ ์ ์ํ๋ฏ [*์ด๊น๊ฐ *๋ง ์ง์ ](#providing-an-initial-value-for-an-input)ํ๋ ค๋ฉด ` defaultVallue ` ๋ฅผ ๋์  ์ ๋ฌํ์ธ์.
484+ ์ค๋ฅ  ๋ฉ์์ง๊ฐ ์ ์ํ๋ฏ [*์ด๊ธฐ๊ฐ *๋ง ์ง์ ](#providing-an-initial-value-for-an-input)ํ๋ ค๋ฉด ` defaultValue ` ๋ฅผ ๋์  ์ ๋ฌํ์ธ์.
485485
486486` ` ` 
487- //  โ
 ์ข์ ์: ์ ์ด๋์ง ์๋ `<input>`์ ์ด๊น๊ฐ  ์ ๋ฌ
487+ //  โ
 ์ข์ ์: ์ ์ด๋์ง ์๋ `<input>`์ ์ด๊ธฐ๊ฐ  ์ ๋ฌ
488488< input defaultValue= {something} / > 
489489` ` ` 
490490
491- [input์ state  ๋ณ์๋ก ์ ์ด](#controlling-an-input-with-a-state-variable)ํ๋ ค๋ฉด `  onChange`  ํธ๋ค๋ฌ๋ฅผ ์ง์ ํ์ธ์.
491+ [์
๋ ฅ์ State  ๋ณ์๋ก ์ ์ด](#controlling-an-input-with-a-state-variable)ํ๋ ค๋ฉด `  onChange`  ํธ๋ค๋ฌ๋ฅผ ์ง์ ํ์ธ์.
492492
493493` ` ` 
494494//  โ
 ์ข์ ์: ์ ์ด๋๋ `<input>`์ `onChange` ์ ๋ฌ
495495< input value= {something} onChange= {e  =>  setSomething (e .target .value )} / > 
496496` ` ` 
497497
498- ๊ฐ์ด ์๋์ ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ์ด๋ผ๋ฉด ์๋ฌ๋ฅผ  ๋ง๊ธฐ ์ํด `  readOnly`  prop์  ์ถ๊ฐํ์ธ์.
498+ ๊ฐ์ด ์๋์ ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ์ด๋ผ๋ฉด ์ค๋ฅ๋ฅผ  ๋ง๊ธฐ ์ํด `  readOnly`  Prop์  ์ถ๊ฐํ์ธ์.
499499
500500` ` ` 
501501//  โ
 ์ข์ ์: ์ ์ด๋๋ ์ฝ๊ธฐ ์ ์ฉ `<input>`์ `onChange` ์๋ต
@@ -515,18 +515,18 @@ function SignupForm() {
515515
516516<ConsoleBlock level="error"> 
517517
518- ํผ ํ๋์ `  onChange`  ํธ๋ค๋ฌ ์์ด ` `  prop์  ์ ๋ฌํ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๊ธฐ ์ ์ฉ ํ๋๋ฅผ ๋ ๋๋งํ๊ฒ ๋ฉ๋๋ค. ํ๋๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅํด์ผ ํ๋ ๊ฒฝ์ฐ ` ` ๋ฅผ ์ฌ์ฉํ๊ณ  ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ` `  ๋๋ ` ` ๋ฅผ ์ค์ ํ์ธ์.
518+ ํผ ํ๋์ `  onChange`  ํธ๋ค๋ฌ ์์ด ` `  Prop์  ์ ๋ฌํ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๊ธฐ ์ ์ฉ ํ๋๋ฅผ ๋ ๋๋งํ๊ฒ ๋ฉ๋๋ค. ํ๋๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅํด์ผ ํ๋ ๊ฒฝ์ฐ ` ` ๋ฅผ ์ฌ์ฉํ๊ณ  ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ` `  ๋๋ ` ` ๋ฅผ ์ค์ ํ์ธ์.
519519
520520</ConsoleBlock> 
521521
522- ์๋ฌ  ๋ฉ์์ง๊ฐ ์ ์ํ๋ฏ [*์ด๊น๊ฐ *๋ง ์ง์ ](#providing-an-initial-value-for-an-input)ํ๋ ค๋ฉด ` ` ๋ฅผ ๋์  ์ ๋ฌํ์ธ์.
522+ ์ค๋ฅ  ๋ฉ์์ง๊ฐ ์ ์ํ๋ฏ [*์ด๊ธฐ๊ฐ *๋ง ์ง์ ](#providing-an-initial-value-for-an-input)ํ๋ ค๋ฉด ` ` ๋ฅผ ๋์  ์ ๋ฌํ์ธ์.
523523
524524` ` ` 
525- //  โ
 ์ข์ ์: ์ ์ด๋์ง ์๋ ์ฒดํฌ๋ฐ์ค์ ์ด๊น๊ฐ  ์ ๋ฌ
525+ //  โ
 ์ข์ ์: ์ ์ด๋์ง ์๋ ์ฒดํฌ๋ฐ์ค์ ์ด๊ธฐ๊ฐ  ์ ๋ฌ
526526< input type= " checkbox" = {something} / > 
527527` ` ` 
528528
529- [์ฒดํฌ๋ฐ์ค๋ฅผ state  ๋ณ์๋ก ์ ์ด](#controlling-an-input-with-a-state-variable)ํ๋ ค๋ฉด `  onChange`  ํธ๋ค๋ฌ๋ฅผ ์ง์ ํ์ธ์.
529+ [์ฒดํฌ๋ฐ์ค๋ฅผ State  ๋ณ์๋ก ์ ์ด](#controlling-an-input-with-a-state-variable)ํ๋ ค๋ฉด `  onChange`  ํธ๋ค๋ฌ๋ฅผ ์ง์ ํ์ธ์.
530530
531531` ` ` 
532532//  โ
 ์ข์ ์: ์ ์ด๋๋ ์ฒดํฌ๋ฐ์ค์ onChange ์ ๋ฌ
@@ -539,7 +539,7 @@ function SignupForm() {
539539
540540</Pitfall> 
541541
542- ์ฒดํฌ๋ฐ์ค๊ฐ ์๋์ ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ์ด๋ผ๋ฉด ์๋ฌ๋ฅผ  ๋ง๊ธฐ ์ํด `  readOnly`  prop์  ์ถ๊ฐํ์ธ์.
542+ ์ฒดํฌ๋ฐ์ค๊ฐ ์๋์ ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ์ด๋ผ๋ฉด ์ค๋ฅ๋ฅผ  ๋ง๊ธฐ ์ํด `  readOnly`  Prop์  ์ถ๊ฐํ์ธ์.
543543
544544` ` ` 
545545//  โ
 ์ข์ ์: ์ ์ด๋๋ ์ฝ๊ธฐ ์ ์ฉ input์ onChange ์๋ต
@@ -548,15 +548,15 @@ function SignupForm() {
548548
549549--- 
550550
551- ### ํค๋ณด๋๋ฅผ ๋๋ฅผ ๋๋ง๋ค ์
๋ ฅ ์ปค์๊ฐ input์  ์ฒ์์ผ๋ก ๋์๊ฐ๋๋ค {/*my-input-caret-jumps-to-the-beginning-on-every-keystroke*/} 
551+ ### ํค๋ณด๋๋ฅผ ๋๋ฅผ ๋๋ง๋ค ์
๋ ฅ ์ปค์๊ฐ ์
๋ ฅ์  ์ฒ์์ผ๋ก ๋์๊ฐ๋๋ค {/*my-input-caret-jumps-to-the-beginning-on-every-keystroke*/} 
552552
553- [input์  ์ ์ด](#controlling-an-input-with-a-state-variable)ํ  ๊ฒฝ์ฐ `  onChange`  ์์์ state  ๋ณ์๋ฅผ DOM์์ ๋ฐ์์จ input  ๊ฐ์ผ๋ก ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
553+ [์
๋ ฅ์  ์ ์ด](#controlling-an-input-with-a-state-variable)ํ  ๊ฒฝ์ฐ `  onChange`  ์์์ State  ๋ณ์๋ฅผ DOM์์ ๋ฐ์์จ ์
๋ ฅ  ๊ฐ์ผ๋ก ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
554554
555- state  ๋ณ์๋ ` e .target .value `  (ํน์ ์ฒดํฌ๋ฐ์ค์์๋ ` e .target .checked ` ) ์ธ์ ๊ฐ์ผ๋ก ์
๋ฐ์ดํธํ  ์ ์์ต๋๋ค.
555+ State  ๋ณ์๋ ` e .target .value `  (ํน์ ์ฒดํฌ๋ฐ์ค์์๋ ` e .target .checked ` ) ์ธ์ ๊ฐ์ผ๋ก ์
๋ฐ์ดํธํ  ์ ์์ต๋๋ค.
556556
557557` ` ` 
558558function  handleChange (e ) {
559-   //  ๐ด ๋ฒ๊ทธ: input์  e.target.value ์ธ์ ๊ฐ์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
559+   //  ๐ด ๋ฒ๊ทธ: ์
๋ ฅ์ ` e.target.value`  ์ธ์ ๊ฐ์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
560560  setFirstName (e .target .value .toUpperCase ());
561561}
562562` ` ` 
@@ -565,7 +565,7 @@ function handleChange(e) {
565565
566566` ` ` 
567567function  handleChange (e ) {
568-   //  ๐ด ๋ฒ๊ทธ: input์  ๋น๋๊ธฐ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
568+   //  ๐ด ๋ฒ๊ทธ: ์
๋ ฅ์  ๋น๋๊ธฐ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
569569  setTimeout (() =>  {
570570    setFirstName (e .target .value );
571571  }, 100 );
@@ -576,22 +576,22 @@ function handleChange(e) {
576576
577577` ` ` 
578578function  handleChange (e ) {
579-   //  โ
 ์ ์ด๋๋ input์  e.target.value๋ก  ๋๊ธฐ ์
๋ฐ์ดํธํฉ๋๋ค.
579+   //  โ
 ์ ์ด๋๋ ์
๋ ฅ์ ` e.target.value`๋ก  ๋๊ธฐ ์
๋ฐ์ดํธํฉ๋๋ค.
580580  setFirstName (e .target .value );
581581}
582582` ` ` 
583583
584- ์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ ํค๋ณด๋๋ฅผ ๋๋ฅผ ๋๋ง๋ค input์ด  DOM์์ ์ ๊ฑฐ๋ ํ ๋ค์ ์ถ๊ฐ๋๊ณ  ์์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ค์๋ก ๋ฆฌ๋ ๋๋ง๋ง๋ค [state๋ฅผ  ์ฌ์ค์ ](/learn/preserving-and-resetting-state)ํ๊ณ  ์๋ค๋ฉด ๋ํ๋  ์ ์๋ ํ์์
๋๋ค. ๊ฐ๋ น input์ด๋ input์  ๋ถ๋ชจ ์ค ํ๋๊ฐ ๋งค๋ฒ ๋ค๋ฅธ `  key`  ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ๋ฐ๊ฑฐ๋ ์ปดํฌ๋ํธ ํจ์ ์ ์๋ฅผ ์ค์ฒฉ์ํค๋ ๊ฒฝ์ฐ(์ด๋ ์ง์๋์ง ์์ผ๋ฉฐ '๋ด๋ถ' ์ปดํฌ๋ํธ๊ฐ ํญ์ ๋ค๋ฅธ ํธ๋ฆฌ๋ก ๊ฐ์ฃผ๋๋๋ก ํฉ๋๋ค)์ ํด๋น ๋ฌธ์ ๊ฐ ๋ฐ์ํ  ์ ์์ต๋๋ค.
584+ ์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ ํค๋ณด๋๋ฅผ ๋๋ฅผ ๋๋ง๋ค ์
๋ ฅ์ด  DOM์์ ์ ๊ฑฐ๋ ํ ๋ค์ ์ถ๊ฐ๋๊ณ  ์์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ค์๋ก ๋ฆฌ๋ ๋๋ง๋ง๋ค [State๋ฅผ  ์ฌ์ค์ ](/learn/preserving-and-resetting-state)ํ๊ณ  ์๋ค๋ฉด ๋ํ๋  ์ ์๋ ํ์์
๋๋ค. ๊ฐ๋ น ์
๋ ฅ์ด๋ ์
๋ ฅ์  ๋ถ๋ชจ ์ค ํ๋๊ฐ ๋งค๋ฒ ๋ค๋ฅธ `  key`  ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ๋ฐ๊ฑฐ๋ ์ปดํฌ๋ํธ ํจ์ ์ ์๋ฅผ ์ค์ฒฉ์ํค๋ ๊ฒฝ์ฐ(์ด๋ ์ง์๋์ง ์์ผ๋ฉฐ '๋ด๋ถ' ์ปดํฌ๋ํธ๊ฐ ํญ์ ๋ค๋ฅธ ํธ๋ฆฌ๋ก ๊ฐ์ฃผ๋๋๋ก ํฉ๋๋ค)์ ํด๋น ๋ฌธ์ ๊ฐ ๋ฐ์ํ  ์ ์์ต๋๋ค.
585585
586586--- 
587587
588- ### ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฉ๋๋ค. "A component is changing an uncontrolled input to be controlled(์ปดํฌ๋ํธ๊ฐ ์ ์ด๋์ง ์๋ input์  ์ ์ด ์ํ๋ก ๋ณ๊ฒฝํฉ๋๋ค)" {/*im-getting-an-error-a-component-is-changing-an-uncontrolled-input-to-be-controlled*/} 
588+ ### ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฉ๋๋ค. "A component is changing an uncontrolled input to be controlled(์ปดํฌ๋ํธ๊ฐ ์ ์ด๋์ง ์๋ ์
๋ ฅ์  ์ ์ด ์ํ๋ก ๋ณ๊ฒฝํฉ๋๋ค)" {/*im-getting-an-error-a-component-is-changing-an-uncontrolled-input-to-be-controlled*/} 
589589
590590
591591์ปดํฌ๋ํธ์ `  value` ๋ฅผ ์ ๊ณตํ  ๊ฒฝ์ฐ ๋ฐ๋์ ์๋ช
์ฃผ๊ธฐ ๋ด๋ด ๋ฌธ์์ด ํ์
์ผ๋ก ๋จ์์ผ ํฉ๋๋ค.
592592
593593React๋ ์ปดํฌ๋ํธ๋ฅผ ๋น์ ์ดํ  ๊ฒ์ธ์ง ์ ์ดํ  ๊ฒ์ธ์ง ์๋๋ฅผ ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒ์์ `  value= {undefined }` ๋ฅผ ์ ๋ฌํ๋ค๊ฐ ๋์ค์ ๋ค์ ` = " some string" ` ์ ์ ๋ฌํ  ์๋ ์์ต๋๋ค. ์ ์ด๋๋ ์ปดํฌ๋ํธ๋ ํญ์ ` null ` ์ด๋ ` undefined ` ๊ฐ ์๋ ๋ฌธ์์ด ` ` ๋ฅผ ๋ฐ์์ผ ํฉ๋๋ค.
594594
595- value๊ฐ  API๋ state ๋ณ์์์ ์จ๋ค๋ฉด ` null ` ์ด๋ ` undefined ` ๋ก ์ด๊ธฐํ๋   ์ ์์ต๋๋ค. ๊ทธ๋ด ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด(` ' ' ` )์ ์ด๊น๊ฐ์ผ๋ก  ์ค์ ํ๊ฑฐ๋ ` ` ๊ฐ ๋ฌธ์์ด์์ ๋ณด์ฅํ๊ธฐ ์ํด ` = {someValue ??  ' ' ` ๋ฅผ ์ ๋ฌํ์ธ์.
595+ ` value ` ๊ฐ  API๋ state ๋ณ์์์ ์จ๋ค๋ฉด ` null ` ์ด๋ ` undefined ` ๋ก ์ด๊ธฐํํ   ์ ์์ต๋๋ค. ๊ทธ๋ด ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด(` ' ' ` )์ ์ด๊ธฐ๊ฐ์ผ๋ก  ์ค์ ํ๊ฑฐ๋ ` ` ๊ฐ ๋ฌธ์์ด์์ ๋ณด์ฅํ๊ธฐ ์ํด ` = {someValue ??  ' ' ` ๋ฅผ ์ ๋ฌํ์ธ์.
596596
597597๋ง์ฐฌ๊ฐ์ง๋ก ์ฒดํฌ๋ฐ์ค์ `  checked` ๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ ๋ถ๋ฆฌ์ธ์์ ๋ณด์ฅํ์ธ์.
0 commit comments