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
В большинстве случаев мы рекомендуем использовать [контролируемые компоненты]((/docs/forms.html)) для работы с формами.
8
-
В контролируемом компоненте, данные формы обрабатываются React-компонентом.
9
-
Альтернативой являются неконтролируемые компоненты, где данные форм обрабатываются через DOM.
7
+
В большинстве случаев мы рекомендуем использовать [контролируемые компоненты](/docs/forms.html) для работы с формами. В контролируемом компоненте, данные формы обрабатываются React-компонентом. Альтернативой являются неконтролируемые компоненты, где данные форм обрабатываются через DOM.
10
8
11
-
Вместо того, чтобы писать обработчик события для каждого обновления состояния, вы можете использовать неконтролируемый компонент и [ref](/docs/refs-and-the-dom.html) для получения значений из DOM.
9
+
Вместо того, чтобы писать обработчик события для каждого обновления состояния, вы можете использовать неконтролируемый компонент и [реф](/docs/refs-and-the-dom.html) для получения значений из DOM.
12
10
13
11
Вот так, к примеру, можно получить имя в обработчике неконтролируемого компонента:
14
12
@@ -21,18 +19,18 @@ class NameForm extends React.Component {
21
19
}
22
20
23
21
handleSubmit(event) {
24
-
alert('A name was submitted: ' + this.input.current.value);
@@ -41,44 +39,44 @@ class NameForm extends React.Component {
41
39
42
40
[**Посмотреть на CodePen**](https://codepen.io/gaearon/pen/WooRWa?editors=0010)
43
41
44
-
Такие компоненты хранят данные в DOM и их проще интегрировать в не-React приложение. Этот код можно сократить если пожертвовать стилистикой. В противном случае лучше использовать контролируемые компоненты.
42
+
Такие компоненты хранят данные в DOM и их проще интегрировать в не React-приложении. Этот код можно сократить, если пожертвовать стилистикой. В противном случае лучше использовать контролируемые компоненты.
45
43
46
-
Если всё ещё остаётся непонятным какой тип компонента Вам необходимо использовать в конкретной ситуации, то, возможно, [статья о контролируемых против некотролируемых input'ах](http://goshakkk.name/controlled-vs-uncontrolled-inputs-react/) может показаться Вам полезной.
44
+
Если всё ещё остаётся непонятным какой тип компонента вам необходимо использовать в конкретной ситуации, то, возможно, [статья о контролируемых против некотролируемых input'ах](http://goshakkk.name/controlled-vs-uncontrolled-inputs-react/) может показаться полезной.
47
45
48
46
### Значения по умолчанию {#default-values}
49
47
50
-
На этапе прорисовки жизненного цикла в React, атрибут `value` на элементах формы будет переопределять значение в DOM. С неконтролируемым компонентом Вам часто необходимо, чтобы React определял первоначальное значение, но оставлял неконтролируемыми последующие обновления. В этом случае, Вам необходимо определить атрибут `defaultValue` вместо `value`.
48
+
На этапе рендеринга жизненного цикла в React, атрибут `value` на элементах формы будет переопределять значение в DOM. С неконтролируемым компонентом вам часто необходимо, чтобы React определял первоначальное значение, но оставлял неконтролируемыми последующие обновления. В этом случае, необходимо определить атрибут `defaultValue` вместо `value`.
51
49
52
50
```javascript{7}
53
51
render() {
54
52
return (
55
53
<form onSubmit={this.handleSubmit}>
56
54
<label>
57
-
Name:
55
+
Имя:
58
56
<input
59
57
defaultValue="Bob"
60
58
type="text"
61
59
ref={this.input} />
62
60
</label>
63
-
<input type="submit" value="Submit" />
61
+
<input type="submit" value="Отправить" />
64
62
</form>
65
63
);
66
64
}
67
65
```
68
66
69
-
Аналогично, `<input type="checkbox">` и `<input type="radio">` используют `defaultChecked`, а `<select>` и `<textarea>`-`defaultValue`.
67
+
Аналогично, `<input type="checkbox">` и `<input type="radio">` используют `defaultChecked`, а `<select>` и `<textarea>`—`defaultValue`.
70
68
71
-
## The file input Tag {#the-file-input-tag}
69
+
## Тег поля загрузки файла {#the-file-input-tag}
72
70
73
-
In HTML, an `<input type="file">`lets the user choose one or more files from their device storage to be uploaded to a server or manipulated by JavaScript via the [File API](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications).
71
+
HTML-тег `<input type="file">`позволяет пользователю выбрать один или несколько файлов из хранилища, чтобы загрузить их на сервер, либо управлять ими с помощью JavaScript, воспользовавшись [File API](https://developer.mozilla.org/ru/docs/Web/API/File/Using_files_from_web_applications).
74
72
75
73
```html
76
74
<inputtype="file" />
77
75
```
78
76
79
-
В React `<input type="file">` всегда является неконтролируемым компонентом, потому что его значение может быть установлено только пользователем, а не программно.
77
+
В React `<input type="file">` всегда является неконтролируемым компонентом, потому что его значение может быть установлено только пользователем, а не программным путём.
80
78
81
-
Вы должны использовать File API для взаимодействия с файлами. В следующем примере показано, как создать [ссылку на узел DOM](/docs/refs-and-the-dom.html) для доступа к файлам в обработчике отправки:
79
+
Вам следует использовать File API для взаимодействия с файлами. В следующем примере показано, как создать [реф на DOM-узел](/docs/refs-and-the-dom.html) для получения доступа к файлам в обработчике отправки:
0 commit comments