You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*`value` : String 타입 (또는 [`multiple={true}`](#enabling-multiple-selection)에서 사용하는 String 배열)이며 어떤 옵션을 선택할지 제어합니다. `value`는 `<select>` 내부에 중첩된 `<option>`의 `value`와 일치합니다.
43
+
*`value` : 문자열 타입 (또는 [`multiple={true}`](#enabling-multiple-selection)에서 사용하는 문자열 배열)이며 어떤 옵션을 선택할지 제어합니다. `value`는 `<select>` 내부에 중첩된 `<option>`의 `value`와 일치합니다.
44
44
45
45
`value`를 전달할 때, 전달된 `value`를 업데이트하는 `onChange` 핸들러를 전달해야 합니다.
46
46
47
-
`<select>`가 제어되지 않는다면, `defaultValue`prop을 전달합니다.
47
+
`<select>`가 제어되지 않는다면, `defaultValue`Prop을 전달합니다.
48
48
49
-
*`defaultValue` : String 타입 (또는 [`multiple={true}`](#enabling-multiple-selection)에서 사용하는 String 배열)이며 [초기 선택 옵션을](#providing-an-initially-selected-option) 지정합니다.
49
+
*`defaultValue` : 문자열 타입 (또는 [`multiple={true}`](#enabling-multiple-selection)에서 사용하는 문자열 배열)이며 [초기 선택 옵션을](#providing-an-initially-selected-option) 지정합니다.
50
50
51
-
`<select>`props는 제어되지 않는 상태와 제어되는 상태 모두에 적용됩니다.
51
+
`<select>`Props는 제어되지 않는 상태와 제어되는 상태 모두에 적용됩니다.
52
52
*[`autoComplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#autocomplete): 문자열 타입. 가능한 [자동완성 동작](https://developer.mozilla.org/ko/docs/Web/HTML/Attributes/autocomplete#%EA%B0%92) 중 하나를 지정합니다.
53
-
*[`autoFocus`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#autofocus): 불리언 타입. `true`이면 React가 마운트 시 해당 엘리먼트에 포커싱합니다.
53
+
*[`autoFocus`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#autofocus): 불리언 타입. `true`이면 React가 마운트 시 해당 요소에 포커싱합니다.
54
54
*`children`: `<select>`는 자식으로 [`<option>`](https://developer.mozilla.org/ko/docs/Web/HTML/Element/option), [`<optgroup>`](https://developer.mozilla.org/ko/docs/Web/HTML/Element/optgroup), [`<datalist>`](https://developer.mozilla.org/ko/docs/Web/HTML/Element/datalist) 컴포넌트를 받습니다. 또한 허용되는 컴포넌트 중 하나를 렌더링하기만 한다면 사용자 정의 컴포넌트를 전달할 수도 있습니다. 최종적으로 `<option>` 태그를 렌더링하는 사용자 정의 컴포넌트를 전달한다면, 렌더링되는 모든 `<option>` 은 `value`를 가져야 합니다.
55
55
*[`disabled`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#disabled): 불리언 타입. `true`일 경우 select box는 상호작용할 수 없게 되고 흐리게 표시됩니다.
56
56
*[`form`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#form): 문자열 타입. 이 select box가 속하는 `<form>`의 `id`를 지정합니다. 생략되면 가장 가까운 부모 폼으로 지정됩니다.
@@ -68,14 +68,14 @@ select box를 표시하려면 [`<select>` 내장 컴포넌트](https://developer
68
68
#### 주의 사항 {/*caveats*/}
69
69
70
70
- HTML과는 달리, `selected` 어트리뷰트를 `<option>`에 전달하는 것은 지원하지 않습니다. 대신, [제어되지 않는 select box](#controlling-a-select-box-with-a-state-variable)인 경우 [`<select defaultValue>`](#providing-an-initially-selected-option)를 사용하고, [제어되어야 하는 select box](#controlling-a-select-box-with-a-state-variable)인 경우 [`<select value>`](#controlling-a-select-box-with-a-state-variable)를 사용해야 합니다.
71
-
-`<select>`에 `value`prop이 전달된다면, [제어되는 것으로 간주합니다.](#controlling-a-select-box-with-a-state-variable)
71
+
-`<select>`에 `value`Prop이 전달된다면, [제어되는 것으로 간주합니다.](#controlling-a-select-box-with-a-state-variable)
72
72
- select box는 제어 상태와 비제어 상태를 동시에 행할 수 없습니다. 둘 중 하나의 상태만 가질 수 있습니다.
73
73
- select box는 생명주기 동안 처음 설정한 제어 상태를 변경할 수 없습니다.
74
74
- 제어되는 모든 select box는 제공되는 값을 동기적으로 업데이트하는 `onChange` 이벤트 핸들러가 필요합니다.
75
75
76
76
---
77
77
78
-
## 사용 방법 {/*usage*/}
78
+
## 사용법 {/*usage*/}
79
79
80
80
### 옵션이 담긴 select box 표시 {/*providing-options-to-a-select-box*/}
81
81
@@ -106,11 +106,11 @@ select { margin: 5px; }
106
106
107
107
---
108
108
109
-
### select box가 포함된 라벨 제공 {/*providing-a-label-for-a-select-box*/}
109
+
### select box가 포함된 레이블 제공 {/*providing-a-label-for-a-select-box*/}
110
110
111
-
라벨이 해당 select box와 연결되어 있음을 브라우저에 알리기 위해 [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label) 태그 안에 `<select>`를 배치합니다. 사용자가 라벨을 클릭하면 브라우저는 자동으로 select box에 초점을 맞춥니다. 또한, 접근성을 위해 필수적입니다. 사용자가 select box에 초점을 맞추면 스크린 리더가 라벨 캡션을 알립니다.
111
+
레이블이 해당 select box와 연결되어 있음을 브라우저에 알리기 위해 [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label) 태그 안에 `<select>`를 배치합니다. 사용자가 레이블을 클릭하면 브라우저는 자동으로 select box에 초점을 맞춥니다. 또한, 접근성을 위해 필수적입니다. 사용자가 select box에 초점을 맞추면 스크린 리더가 레이블 캡션을 알립니다.
112
112
113
-
`<select>`를 `<label>` 안에 중첩 시킬 수 없다면, 같은 ID를 `<select id>`와 [`<label htmlFor>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/htmlFor)에 전달하여 연결해야 합니다. 한 컴포넌트에서 여러 인스턴스 간 충돌을 피하려면 [`useId`를 사용하여](/reference/react/useId) ID를 생성해 주세요.
113
+
`<select>`를 `<label>` 안에 중첩 시킬 수 없다면, 같은 ID를 `<select id>`와 [`<label htmlFor>`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/htmlFor)에 전달하여 연결해야 합니다. 한 컴포넌트에서 여러 인스턴스 간 충돌을 피하려면 [`useId`를 사용하여](/reference/react/useId) ID를 생성하세요.
114
114
115
115
<Sandpack>
116
116
@@ -154,7 +154,7 @@ select { margin: 5px; }
154
154
155
155
### 초기 선택 옵션 제공 {/*providing-an-initially-selected-option*/}
156
156
157
-
기본적으로 브라우저는 목록에서 첫 번째 `<option>`을 선택합니다. 다른 옵션을 기본값으로 선택하려면 `<select>`엘리먼트에`<option>`의 `value`를 `defaultValue`로 전달해야 합니다.
157
+
기본적으로 브라우저는 목록에서 첫 번째 `<option>`을 선택합니다. 다른 옵션을 기본값으로 선택하려면 `<select>`요소`<option>`의 `value`를 `defaultValue`로 전달해야 합니다.
`<select multiple={true}>`를 사용하면 [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData)에서 각 선택한 값을 별도의 이름-값 쌍으로 포함합니다. 위의 예시에서 콘솔 로그를 확인해 주세요.
### state 변수와 함께 select box 제어 {/*controlling-a-select-box-with-a-state-variable*/}
300
+
### State 변수와 함께 select box 제어 {/*controlling-a-select-box-with-a-state-variable*/}
301
301
302
302
`<select>`와 같은 select box는 *제어되지 않습니다.*`<select defaultValue="orange" />`와 같이 [처음에 선택한 값](#providing-an-initially-selected-option)을 전달하더라도 JSX는 현재 값이 아닌 초기 값만 지정합니다.
303
303
304
-
**제어된 select box를 렌더링하려면 `value`prop을 전달해야 합니다.** React는 select box가 항상 전달한 `value`를 갖도록 강제합니다. 보통 [state 변수로 선언](/reference/react/useState)하여 선택 상자를 제어합니다.
304
+
**제어된 select box를 렌더링하려면 `value`Prop을 전달해야 합니다.** React는 select box가 항상 전달한 `value`를 갖도록 강제합니다. 보통 [State 변수로 선언](/reference/react/useState)하여 선택 상자를 제어합니다.
**`onChange` 없이 `value`를 전달하면 옵션을 선택할 수 없습니다.**`value`를 전달하여 select box를 제어하면 전달한 값이 항상 있도록 *강제*합니다. 따라서 `value`를 state 변수로 전달했지만 `onChange` 이벤트 핸들러에서 state 변수를 동기적으로 업데이트하지 않으면 React는 키를 누를 때마다 select box를 지정한 `value`로 되돌립니다.
379
+
**`onChange` 없이 `value`를 전달하면 옵션을 선택할 수 없습니다.**`value`를 전달하여 select box를 제어하면 전달한 값이 항상 있도록 *강제*합니다. 따라서 `value`를 State 변수로 전달했지만 `onChange` 이벤트 핸들러에서 State 변수를 동기적으로 업데이트하지 않으면 React는 키를 누를 때마다 select box를 지정한 `value`로 되돌립니다.
380
380
381
381
HTML과는 달리 개별 `<option>`에 `selected` 어트리뷰트를 전달하는 것은 지원하지 않습니다.
0 commit comments