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
Copy file name to clipboardExpand all lines: content/docs/refs-and-the-dom.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,7 +33,7 @@ redirect_from:
33
33
34
34
> Примітка:
35
35
>
36
-
> Приклади нижче були оновлені для використання `React.createRef()` API, що з'явився у React 16.3. Якщо ви використуєте попередню версію React, ми рекомендуємо використовувати [рефи зворотнього виклику](#callback-refs).
36
+
> Приклади нижче були оновлені для використання `React.createRef()` API, що з'явився у React 16.3. Якщо ви використуєте попередню версію React, ми рекомендуємо використовувати [рефи зворотного виклику](#callback-refs).
37
37
38
38
### Створення рефів {#creating-refs}
39
39
@@ -201,13 +201,13 @@ function CustomTextInput(props) {
201
201
202
202
Ми не рекомендуємо підхід передачі DOM-вузлів, але він може стати рятувальним жилетом. Зверніть увагу, що цей підхід потребує написання додаткового коду для дочірніх комопонетів. Якщо у вас взагалі немає котролю над реалізацією дочірніх компонентів, то ваш остання можливість — скористатися методом [`findDOMNode()`](/docs/react-dom.html#finddomnode), але цей метод нерекомендований та вважається застарілим у [`StrictMode`](/docs/strict-mode.html#warning-about-deprecated-finddomnode-usage).
203
203
204
-
### Рефи зворотнього виклику {#callback-refs}
204
+
### Рефи зворотного виклику {#callback-refs}
205
205
206
-
React також підтримує інший варіант ініціалізації рефів, що називається "рефи зворотнього виклику" ("callback refs"), що дає більший контроль над процесом визначення та очищення рефів.
206
+
React також підтримує інший варіант ініціалізації рефів, що називається "рефи зворотного виклику" ("callback refs"), що дає більший контроль над процесом визначення та очищення рефів.
207
207
208
208
На відміну від передачі рефа, що створений функцією `createRef()`, через атрибути `ref`, ви передаєте функцію. Функція отримує екземпляр компонента чи DOM-елемент у вигляді аргумента, який можна використати або зберегти.
209
209
210
-
Приклад нижче реалізує поширений паттерн: використання функції зворотнього виклику у `ref` для зберігання посилання на DOM-вузл в екземплері.
210
+
Приклад нижче реалізує поширений паттерн: використання функції зворотного виклику у `ref` для зберігання посилання на DOM-вузол в екземплярі.
211
211
212
212
```javascript{5,7-9,11-14,19,29,34}
213
213
class CustomTextInput extends React.Component {
@@ -232,7 +232,7 @@ class CustomTextInput extends React.Component {
232
232
}
233
233
234
234
render() {
235
-
// Використання функції зворотнього виклику в `ref` для зберігання посилання на DOM-елемент
235
+
// Використання функції зворотного виклику в `ref` для зберігання посилання на DOM-елемент
236
236
// текстове поле введення в екземплярі (наприклад, this.textInput).
237
237
return (
238
238
<div>
@@ -251,9 +251,9 @@ class CustomTextInput extends React.Component {
251
251
}
252
252
```
253
253
254
-
React викличе функцію зворотнього виклику `ref` з DOM-елементом, коли компонент буде примонтований, та виконає її зі значенням `null`, коли компонент буде прибрано. Рефи гарантують актуальність перед викликом метода `componentDidMount` або `componentDidUpdate`.
254
+
React викличе функцію зворотного виклику `ref` з DOM-елементом, коли компонент буде примонтований, та виконає її зі значенням `null`, коли компонент буде прибрано. Рефи гарантують актуальність перед викликом метода `componentDidMount` або `componentDidUpdate`.
255
255
256
-
Ви можете передавати реф зворотнього виклику між компонентами так само як і реф, що створюється викликом функції `React.createRef()`.
256
+
Ви можете передавати реф зворотного виклику між компонентами так само як і реф, що створюється викликом функції `React.createRef()`.
257
257
258
258
```javascript{4,13}
259
259
function CustomTextInput(props) {
@@ -275,16 +275,16 @@ class Parent extends React.Component {
275
275
}
276
276
```
277
277
278
-
У попередньому прикладі, `Parent` передає свій реф зворотнього виклику як проп `inputRef` нащадку `CustomTextInput`, і вже `CustomTextInput` передає цю функцію як спеціалізований атрибут `ref` до `<input>`. Як результат, `this.inputElement` у `Parent` буде посиланням на DOM-вузол, що відповідає елементу `<input>` у компонента `CustomTextInput`.
278
+
У попередньому прикладі, `Parent` передає свій реф зворотного виклику як проп `inputRef` нащадку `CustomTextInput`, і вже `CustomTextInput` передає цю функцію як спеціалізований атрибут `ref` до `<input>`. Як результат, `this.inputElement` у `Parent` буде посиланням на DOM-вузол, що відповідає елементу `<input>` у компонента `CustomTextInput`.
Якщо ви працювали з React раніше, ви мабуть знайомі зі старим API, де атрибут `ref` може бути рядком, наприклад `"textInput"`, в той самий час DOM-вузол стає доступним через `this.refs.textInput`. Ми не радимо користуватися ним, тому що рядкові рефи мають [деякі проблеми](https://github.com/facebook/react/pull/8333#issuecomment-271648615), також цей API вважається застарілим, та **ймовірно буде видалений в одній з майбутніх версій**.
283
283
284
284
> Примітка:
285
285
>
286
-
> Якщо ви досі користуєтесь `this.refs.textInput` для доступу до рефів, ми рекомендуємо натомість користовуватися [рефами зворотнього виклику](#callback-refs) або [`createRef` API](#creating-refs).
286
+
> Якщо ви досі користуєтесь `this.refs.textInput` для доступу до рефів, ми рекомендуємо натомість користовуватися [рефами зворотного виклику](#callback-refs) або [`createRef` API](#creating-refs).
287
287
288
-
### Застереження до рефів зворотнього виклику {#caveats-with-callback-refs}
288
+
### Застереження до рефів зворотного виклику {#caveats-with-callback-refs}
289
289
290
290
Якщо `ref` визначено як вбудовану функцію, то вона буде виклакана двічі протягом оновлень, перший раз з `null`, потім з посиланням на DOM-елемент. Це відбувається, тому що створюється новий екземпляр функції під час кожного рендеру, так як React потребує очистити старий реф та встановити новий. Щоб запобігти цьому, просто передайте в `ref` метод класу, але зверніть увагу, що в більшості випадків це не має значення.
0 commit comments