Skip to content

Commit 6a7bd94

Browse files
committed
fix: misspellings
1 parent 07592c4 commit 6a7bd94

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

src/content/learn/sharing-state-between-components.md

+19-19
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Спільний доступ до стану між компонента
44

55
<Intro>
66

7-
Інколи ви хочете, щоб стан двох компонент завжди змінювався разом. Щоб так зробити, видаліть стан з обох компонент, перенесіть його до їхнього найближчого спільного батька та потім передайте його вниз до них завдяки пропсам. Це відоме як *підняття стану вгору* і це одна з найпоширеніших речей, які ви будете робити під час написання React коду.
7+
Іноді вам потрібно, щоб стан двох компонент завжди змінювався разом. Щоб так зробити, видаліть стан з обох компонент, перенесіть його до їхнього найближчого спільного батька та потім передайте стан вниз до них завдяки пропсам. Це відоме як *підняття стану вгору* і це одна з найпоширеніших речей, які ви будете робити під час написання React коду.
88

99
</Intro>
1010

@@ -17,13 +17,13 @@ title: Спільний доступ до стану між компонента
1717

1818
## Підняття стану на прикладі {/*lifting-state-up-by-example*/}
1919

20-
В цьому прикладі, батьківський `Accordion` компонент рендерить дві окремі `Panel`і:
20+
В цьому прикладі, батьківський компонент `Accordion` рендерить дві окремі `Panel`:
2121

2222
* `Accordion`
2323
- `Panel`
2424
- `Panel`
2525

26-
Кожний `Panel` компонент має булевий `isActive` стан, що визначає чи її вміст видимий.
26+
Кожний `Panel` компонент має булевий `isActive` стан, що визначає чи його вміст видимий.
2727

2828
Натисніть кнопку Показати для обох панелей:
2929

@@ -99,11 +99,11 @@ h3, p { margin: 5px 0px; }
9999
2. **Передати** жорсткокодовані дані від спільного батька.
100100
3. **Додати** стан до спільного батька і передати його вниз разом з обробниками подій.
101101

102-
Це дозволить компоненту `Accordion`скоординувати обидві `Panel` і розгортати тільки одну на раз.
102+
Це дозволить компоненту `Accordion`скоординувати обидві `Panel` та розгортати тільки одну на раз.
103103

104104
### Крок 1: Видаліть стан з дочірніх компонент {/*step-1-remove-state-from-the-child-components*/}
105105

106-
Ви передасьте контроль `isActive` до `Panel` батьківського компонента. Це означає що батьківський компоненнт передасть `isActive` до `Panel` як проп. Почніть з **видалення цього рядка** з `Panel` компонента:
106+
Ви передасте контроль `isActive` `Panel` до її батьківської компоненти. Це означає що батьківський компоненнт передасть `isActive` до `Panel` як проп. Почніть з **видалення цього рядка** з `Panel` компонента:
107107

108108
```js
109109
const [isActive, setIsActive] = useState(false);
@@ -115,17 +115,17 @@ const [isActive, setIsActive] = useState(false);
115115
function Panel({ title, children, isActive }) {
116116
```
117117
118-
Тепер батьківський компонента `Panel` може *контролювати* `isActive`, [передаючи його як проп.](/learn/passing-props-to-a-component) І навпаки, `Panel` компонент тепер *не має контролю* над значенням `isActive`-- тепер це залежить від батьківського компонента!
118+
Тепер батьківський компонент `Panel` може *контролювати* `isActive`, [передаючи його як проп.](/learn/passing-props-to-a-component) І навпаки, `Panel` компонент тепер *не має контролю* над значенням `isActive`-- тепер це залежить від батьківського компонента!
119119
120120
### Крок 2: Передайте жорсткокодовані дані з батьківського компонента {/*step-2-pass-hardcoded-data-from-the-common-parent*/}
121121
122-
Щоб підняти стан вгору, ви повинні виявити найближчий спільний батьківський компонент *обох* дочірніх компонентів, які ви хочете скоординувати:
122+
Щоб підняти стан вгору, ви повинні виявити найближчий спільний батьківський компонент *обох* дочірніх компонент, які ви хочете скоординувати:
123123
124124
* `Accordion` *(найближчий спільний батько)*
125125
- `Panel`
126126
- `Panel`
127127
128-
У цьому прикладі, компонент `Accordion`. Оскільки він знаходиться над обогома панелями і може контролювати їхні пропси, це стане "джерелом правди" для визначення, яка панель є відкритою на даний момент. Зробіть так щоб компонент `Accordion` передавав жорсткокодоване значення `isActive` (наприклад, `true`) до обидвох панелей:
128+
У цьому прикладі, компонент `Accordion`. Оскільки він знаходиться над обома панелями і може контролювати їхні пропси, це стане "джерелом правди" для визначення, яка панель є відкритою на даний момент. Зробіть так щоб компонент `Accordion` передавав жорсткокодоване значення `isActive` (наприклад, `true`) до обидвох панелей:
129129
130130
<Sandpack>
131131
@@ -172,13 +172,13 @@ h3, p { margin: 5px 0px; }
172172
173173
</Sandpack>
174174
175-
Спробуйте відредагувати жорсткокодовані значення `isActive` у компоненті `Accordion` і подивіться на результат на екрані.
175+
Спробуйте відредагувати жорсткокодовані значення `isActive` у компоненті `Accordion` та подивіться результат на екрані.
176176
177177
### Крок 3: Добавте стан до батьківської компоненти {/*step-3-add-state-to-the-common-parent*/}
178178
179179
Підйом стану вгору часто змінює природу того, що ви зберігаєте як стан.
180180
181-
В цьому випадку, тільки одна панель має бути актиною одночасно. Це означає що `Accordion` спільний батьківський компонент має відстежувати, *яка* панель є активною. Замість `boolean` значення, омжна використовувати число як індекс активної `Panel` для змінної стану:
181+
В цьому випадку, тільки одна панель має бути активною на даний момент. Це означає що `Accordion` спільний батьківський компонент має відстежувати, *яка* панель є активною. Замість `boolean` значення, можна використовувати число як індекс активної `Panel` для змінної стану:
182182
183183
```js
184184
const [activeIndex, setActiveIndex] = useState(0);
@@ -263,19 +263,19 @@ h3, p { margin: 5px 0px; }
263263
```
264264
265265
</Sandpack>
266-
Підняття стану вгору завершено! Переміщення стану в спільний батьківський компонент дозволяє вам скоординувати дві панелі. Використовуючи активний індекс замість двох "показано" прапорців гарантує, що тільки одна панель буде активною на даний момент. І передаючи вниз обробник подій до дочірнього компонента дозволить дочірньому компоненту змінювати батьківський стан.
266+
Підняття стану вгору завершено! Переміщення стану в спільний батьківський компонент дозволяє вам скоординувати дві панелі. Використовуючи активний індекс замість двох "активно" прапорців гарантує, що тільки одна панель буде активною на даний момент. І передаючи вниз обробник подій до дочірньої компоненти дозволить йому змінювати батьківський стан.
267267
268268
<DiagramGroup>
269269
270-
<Diagram name="sharing_state_parent" height={385} width={487} alt="Діаграма зоображає дерево із трьох компонент, один батьківський з назвою Accordion та двох дочірніх з назвами Panel. Accordion містить activeIndex нульовим значенням, яке стає isActive із значенням true, що передається до першої панелі і isActive із значенням false до другої Panel.">
270+
<Diagram name="sharing_state_parent" height={385} width={487} alt="Діаграма зоображає дерево із трьох компонент, один батьківський з назвою Accordion та двох дочірніх з назвами Panel. Accordion містить activeIndex із нульовим значенням, яке стає isActive із значенням true, що передається до першої панелі та isActive із значенням false до другої Panel.">
271271
272272
Початково, `Accordion` має `activeIndex` із значенням `0`, тому перша `Panel` отримує `isActive = true`
273273
274274
</Diagram>
275275
276-
<Diagram name="sharing_state_parent_clicked" height={385} width={521} alt="Така сама діаграма що й попередня, тільки із activeIndex значення батьківського компонента підсвічено, що вказує клік із значенням зміненим на одиницю. Шлях до обох дочірніх Panel компонент таокж підсвічений та isActive значення, яке передане до кожної дочірньої компоненти є протилежним: false для першої Panel та true для другої" >
276+
<Diagram name="sharing_state_parent_clicked" height={385} width={521} alt="Така сама діаграма що й попередня, тільки activeIndex значення батьківського компонента, яке підсвічено, що вказує на клік із значенням зміненим на одиницю. Шлях до обох дочірніх Panel компонент таокж підсвічений та isActive значення, яке передане до кожної дочірньої компоненти є протилежним: false для першої Panel та true для другої" >
277277
278-
Коли `Accordion` `activeIndex` стан змінюється на `1`, друга `Panel` отримує `isActive = true` замість
278+
Коли стан `Accordion` `activeIndex` змінюється на `1`, друга `Panel` отримує `isActive = true`
279279
280280
</Diagram>
281281
@@ -291,17 +291,17 @@ h3, p { margin: 5px 0px; }
291291
292292
Неконтрольовані компоненти легше використовувати із їхніми батьківськими, оскільки вони вимагають менше налаштувань. Але вони менш гнучкі, коли ви хочете скоординувати їх разом. Контрольовані компоненти є максимально гнучкими але вони вимагають від батьківських компонент повністю налаштувати їх за допомогою пропсів.
293293
294-
На практиці, "контрольований" та "неконтрольований" не є строгими технічними термінами--кожен компонент, зазвичай має суміш обох, із локальним станом та пропсами. Однак, це корисний спосіб, щоб поговорити як компоненти спроектовані, та які можливості вони пропонують.
294+
На практиці, "контрольований" та "неконтрольований" не є строгими технічними термінами--кожен компонент зазвичай має певну суміш як локального стану та пропсів. Однак, це корисний спосіб, розповісти про те, як компоненти розроблені та які можливості вони пропонують.
295295
296-
Коли пишите компонент, подумайте, яка інформація в ньому має бути контрольованою (за допомогою пропсів), а яка інформація має бути неконтрольована (за допомогою стану). Але завжди можете передумати і покращити це пізніше.
296+
Коли пишите компонент, подумайте, яка інформація в ньому має бути контрольованою (за допомогою пропсів), а яка інформація має бути неконтрольована (за допомогою стану). Але завжди можете передумати і змінити це пізніше.
297297
298298
</DeepDive>
299299
300300
## Єдине джерело правди для кожного стану {/*a-single-source-of-truth-for-each-state*/}
301301
302302
В React застосунку, багато компонент матимуть їхній власний стан. Деякий стан може "жити" близько до листкових компонент (компоненти, що знаходяться внизу дерева), для прикладу, поля вводу. Інші стани можуть "жити" ближче до вершини застосунку. Для прикладу, навіть клієнтські бібліотеки маршрутизації зазвичай реалізовані за допомогою зберігання поточного маршруту в React стані та передають його вниз за допомогою пропсів!
303303
304-
**Для кожної унікальної частинки стану, ви вибирете компонент що "належить" йому.** Цей принцип також відомий як ["єдине джерело правди"](https://en.wikipedia.org/wiki/Single_source_of_truth) Це не означає, що весь стан знаходиться в одному місці--це означає, що для _кожної_ частини стану існує _певний_ компонент, який містить ту частину інформації. Замість дублювання спільного стану між компонентами, *підніміть його вгору* до їхнього спільного батька та *передайте його вниз* до дочірніх компонент, де він потрібний.
304+
**Для кожної унікальної частинки стану, ви оберете компонент що "належить" йому.** Цей принцип також відомий як ["єдине джерело правди"](https://en.wikipedia.org/wiki/Single_source_of_truth) Це не означає, що весь стан знаходиться в одному місці--це означає, що для _кожної_ частини стану існує _певний_ компонент, який містить ту частину інформації. Замість дублювання спільного стану між компонентами, *підніміть його вгору* до їхнього спільного батька та *передайте його вниз* до дочірніх компонент, де він потрібний.
305305
306306
Ваш застосунок буде змінюватись в міру того, як ви працюєте над ним. Часто буває так. що ви переміщуєте стан вниз або назад вгору, протягом того, як стараєтесь з'ясувати де кожен шматок стану "живе". Це все частина процесу!
307307
@@ -324,7 +324,7 @@ h3, p { margin: 5px 0px; }
324324
325325
<Hint>
326326
327-
Вам потрібно підняти їхній стан вгору до батьківського компонентам.
327+
Вам потрібно підняти їхній стан вгору до батьківської компоненти.
328328
329329
</Hint>
330330
@@ -428,7 +428,7 @@ label { display: block; }
428428
429429
В цьому прикладі, `SearchBar` має власний `query` стан що контролює текстове поле вводу. Його батьківський `FilterableList` компонент відображає `List` елементів але це не враховує пошуковий запит.
430430
431-
Використайте `filterItems(foods, query)` функцію щоб фільтрувати список відповідно до пошукового запиту. Щоб перевірити ваші зміни, переконайтеся, що введення "с" в поле введення відфільтрує список до "Суші", та "Дім сум".
431+
Використайте `filterItems(foods, query)` функцію щоб фільтрувати список відповідно до пошукового запиту. Щоб перевірити ваші зміни, переконайтеся, що введення "с" в поле введення відфільтрує список до "Суші" та "Дім сум".
432432
433433
Зверніть увагу, що `filterItems` вже реалізовано та імпортовано, отже вам не потрібно писати його самостійно!
434434

0 commit comments

Comments
 (0)