Skip to content

Commit ebd5d9c

Browse files
committed
fixes
1 parent 82326ce commit ebd5d9c

1 file changed

Lines changed: 16 additions & 16 deletions

File tree

src/content/reference/react/forwardRef.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: forwardRef
44

55
<Intro>
66

7-
`forwardRef` Дазваляе кампаненту раскрыць вузел DOM для бацькоўскага кампанента праз [ref.](/learn/manipulating-the-dom-with-refs)
7+
`forwardRef` дазваляе кампаненту раскрыць вузел DOM для бацькоўскага кампанента праз [ref.](/learn/manipulating-the-dom-with-refs)
88

99
```js
1010
const SomeComponent = forwardRef(render)
@@ -16,7 +16,7 @@ const SomeComponent = forwardRef(render)
1616

1717
---
1818

19-
## Reference {/*reference*/}
19+
## Даведка {/*reference*/}
2020

2121
### `forwardRef(render)` {/*forwardref*/}
2222

@@ -38,11 +38,11 @@ const MyInput = forwardRef(function MyInput(props, ref) {
3838

3939
#### Значэнні, якія вяртаюцца {/*returns*/}
4040

41-
`forwardRef` вяртае кампанент React, які можа быць адрэндэраны праз JSX. У адрозненні ад кампанентаў, вызначаных з дапамогай звычайных функцый, кампанент, вызначаны праз `forwardRef` здольны таксама прымаць пропс `ref`.
41+
`forwardRef` вяртае кампанент React, які можа быць адрэндэраны праз JSX. У адрозненні ад кампанентаў, вызначаных з дапамогай звычайных функцый, кампанент, вызначаны праз `forwardRef`, здольны таксама прымаць пропс `ref`.
4242

43-
#### Нюансы {/*caveats*/}
43+
#### Перасцярогі {/*caveats*/}
4444

45-
* У Строгім рэжыме, React будзе **выклікаць функцыю рэндэрынгу двойчы** каб [дапамагчы знайсці выпадковыя нячыстасці](#my-initializer-or-updater-function-runs-twice). Такія паводзіны адбываюцца толькі ў працоўным асяроддзі і ніяк не ўплываюць на працоўнае. Калі функцыя вашага кампанента чыстая (якой яна мае быць), гэта не мае ўплываць на логіку кампанента. Вынік аднаго з выклікаў будзе праігнараваны.
45+
* У Строгім рэжыме, React будзе **выклікаць функцыю рэндэрынгу двойчы** каб [дапамагчы знайсці выпадковыя нячыстасці](#my-initializer-or-updater-function-runs-twice). Такія паводзіны адбываюцца толькі ў асяроддзі для распрацоўкі і ніяк не ўплываюць на працоўнае. Калі функцыя вашага кампанента чыстая (якой яна мае быць), гэта не павінна ўплываць на логіку кампанента. Вынік аднаго з выклікаў будзе праігнараваны.
4646

4747

4848
---
@@ -66,7 +66,7 @@ const MyInput = forwardRef(function MyInput(props, ref) {
6666

6767
* `props`: Пропсы, перададзеныя з бацькоўскага кампанента.
6868

69-
* `ref`: Атрыбут `ref`, перададзены з бацькоўскага кампанента. `ref` можа быць аб’ектам ці функцыяй. Калі бацькоўскі кампанент не перадаў рэф, значэннем будзе `null`. Вы маеце перадаць атрыманы `ref` ці ў іншы кампанент, ці ў [`useImperativeHandle`.](/reference/react/useImperativeHandle)
69+
* `ref`: Атрыбут `ref`, перададзены з бацькоўскага кампанента. `ref` можа быць аб’ектам ці функцыяй. Калі бацькоўскі кампанент не перадаў рэф, значэннем будзе `null`. Вы маеце перадаць атрыманы `ref` у іншы кампанент ці ў [`useImperativeHandle`.](/reference/react/useImperativeHandle)
7070

7171
#### Значэнні, якія вяртаюцца {/*render-returns*/}
7272

@@ -78,7 +78,7 @@ const MyInput = forwardRef(function MyInput(props, ref) {
7878

7979
### Раскрыццё вузла DOM кампанента бацькоўскаму {/*exposing-a-dom-node-to-the-parent-component*/}
8080

81-
Першапачаткова вузлы DOM кожнага з кампанентаў прыватныя. Але ж, часам бывае карысна адкрыць вузел для бацькоўскага кампанента. Напрыклад, каб дазволіць сфакусавацца на ім. Каб гэта зрабіць, абгарніце вызначэнне вашага кампанента ў `forwardRef()`:
81+
Першапачаткова вузлы DOM кожнага з кампанентаў прыватныя. Але ж, часам бывае карысна адкрыць вузел для бацькоўскага кампанента. Напрыклад, каб дазволіць сфакусіравацца на ім. Каб гэта зрабіць, абгарніце вызначэнне вашага кампанента ў `forwardRef()`:
8282

8383
```js {3,11}
8484
import { forwardRef } from 'react';
@@ -124,7 +124,7 @@ function Form() {
124124
<form>
125125
<MyInput label="Увядзіце вашае імя:" ref={ref} />
126126
<button type="button" onClick={handleClick}>
127-
Edit
127+
Рэдагаваць
128128
</button>
129129
</form>
130130
);
@@ -133,13 +133,13 @@ function Form() {
133133

134134
Дадзены кампанент `Form` [задае рэф](/reference/react/useRef#manipulating-the-dom-with-a-ref) для `MyInput`. Кампанент `MyInput` *перанакіроўвае* гэты рэф да тэга `<input>`. У выніку кампанент `Form` можа атрымаць доступ да вузла DOM `<input>` і выклікаць ягоны метад [`focus()`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus).
135135

136-
Памятайце, што раскрыццё рэфа вузла DOM унутры кампанента ўскладняе змену ўнутраных часцей кампанента пазней. Звычайна вам можа спатрэбіцца раскрыццё вузлоў DOM для нізкаўзроўневых кампанентаў, якія вы будзеце перавыкарыстоўваць, такіх як кнопкі ці палі ўводу тэксту, але, не для болей высоўкаўзроўневых, такіх як аватары ці каментарыі.
136+
Памятайце, што раскрыццё рэфа вузла DOM унутры кампанента ўскладняе змену ўнутраных часцей кампанента пазней. Звычайна вам можа спатрэбіцца раскрыццё вузлоў DOM для нізкаўзроўневых кампанентаў, якія вы будзеце перавыкарыстоўваць, такіх як кнопкі ці палі ўводу тэксту, але не для болей высоўкаўзроўневых, такіх як аватары ці каментарыі.
137137

138138
<Recipes titleText="Прыклады перанакіроўвання рэфа">
139139

140-
#### Факусаванне на полі ўводу тэксту {/*focusing-a-text-input*/}
140+
#### Факусіраванне на полі ўводу тэксту {/*focusing-a-text-input*/}
141141

142-
Націсканне кнопкі прывядзе на факусаванні на полі ўводу. Кампанент `Form` вызначае рэф і перадае яго ў кампанент `MyInput`. Кампанент `MyInput` перанакіроўвае гэты рэф да элемента `<input>`. Гэта дазваляе кампаненту `Form` зрабіць факусаванне на `<input>`.
142+
Націсканне кнопкі прывядзе да факусіравання на полі ўводу. Кампанент `Form` вызначае рэф і перадае яго ў кампанент `MyInput`. Кампанент `MyInput` перанакіроўвае гэты рэф да элемента `<input>`. Гэта дазваляе кампаненту `Form` зрабіць факусіраванне на `<input>`.
143143

144144
<Sandpack>
145145

@@ -404,7 +404,7 @@ const MyInput = forwardRef(function MyInput(props, ref) {
404404
});
405405
```
406406

407-
Калі які-небудзь кампанент перадасць рэф у `MyInput`, ён атрымае толькі ваш аб’ект `{ focus, scrollIntoView }` замест вузла DOM. Гэта дазваляе лімітаваць інфармацыю, якую вы хочаце раскрыць пра ваш вузел DOM, да мінімуму.
407+
Калі які-небудзь кампанент перадасць рэф у `MyInput`, ён атрымае толькі ваш аб’ект `{ focus, scrollIntoView }` замест вузла DOM. Гэта дазваляе абмяжоўваць інфармацыю, якую вы хочаце раскрыць пра ваш вузел DOM, да мінімуму.
408408

409409
<Sandpack>
410410

@@ -467,15 +467,15 @@ input {
467467

468468
<Pitfall>
469469

470-
**Не выкарыстоўвайце рэфы болей, чым трэба.** Варта выкарыстоўваць рэфы толькі для загаднага кіравання, якое нельга зрабіць праз пропсы: напрыклад, каб прагартаць да вузла, сфакусавацца на ім, пачаць анімацыю, вылучыць тэкст і г.д.
470+
**Не выкарыстоўвайце рэфы болей, чым трэба.** Варта выкарыстоўваць рэфы толькі для загаднага кіравання, якое нельга зрабіць праз пропсы: напрыклад, каб прагартаць да вузла, сфакусіравацца на ім, пачаць анімацыю, вылучыць тэкст і г.д.
471471

472-
**Калі штосьці можна выразіць пропсамі, не варта выкарыстоўваць для гэтага рэфы.** Напрыклад, замест раскрыцця загаднага кіравання, напрыклад вось такога: `{ open, close }` з кампанент `Modal`, лепей порымаць `isOpen` як пропс, напрыклад: `<Modal isOpen={isOpen} />`. [Эфекты](/learn/synchronizing-with-effects) могуць дапамагчы раскрыць загаднае кіраванне ў выглядзе пропсаў.
472+
**Калі штосьці можна выразіць пропсамі, не варта выкарыстоўваць для гэтага рэфы.** Напрыклад, замест раскрыцця падобнага загаднага кіравання: `{ open, close }` з кампанента `Modal`, лепей прымаць `isOpen` як пропс, напрыклад: `<Modal isOpen={isOpen} />`. [Эфекты](/learn/synchronizing-with-effects) могуць дапамагчы раскрыць загаднае кіраванне ў выглядзе пропсаў.
473473

474474
</Pitfall>
475475

476476
---
477477

478-
## Магчымыя непаладкі {/*troubleshooting*/}
478+
## Дыягностыка непаладак {/*troubleshooting*/}
479479

480480
### Мой кампанент абгорнуты ў `forwardRef`, але `ref` заўсёды `null` {/*my-component-is-wrapped-in-forwardref-but-the-ref-to-it-is-always-null*/}
481481

@@ -520,7 +520,7 @@ const MyInput = forwardRef(function MyInput({ label, showInput }, ref) {
520520
});
521521
```
522522

523-
Калі значэнне `showInput` роўнае `false`, рэф не будзе перададзены ніводнаму вузлу, і рэф `MyInput` застанецца пустым. Падобнае лёгка прапусціць, калі ўмова схаваная ўнутры іншага кампанента, як з гэтым кампанентам `Panel` у прыкладзе:
523+
Калі значэнне `showInput` роўнае `false`, рэф не будзе перададзены ніводнаму вузлу, і рэф `MyInput` застанецца пустым. Падобнае лёгка прапусціць, калі ўмова схаваная ўнутры іншага кампанента, як у гэтым кампаненце `Panel` у прыкладзе:
524524

525525
```js {5,7}
526526
const MyInput = forwardRef(function MyInput({ label, showInput }, ref) {

0 commit comments

Comments
 (0)