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: src/content/learn/sharing-state-between-components.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ title: Спільний доступ до стану між компонента
4
4
5
5
<Intro>
6
6
7
-
Інколи ви хочете, щоб стан двох компонентів завжди змінювався разом. Щоб так зробити, видаліть стан з обох компонентів, перенесіть його до їхнього найближчого спільного батька та потім передайте його вниз до них завдяки пропсам. Це відоме як *підняття стану вгору* і це одна з найпоширеніших речей, які ви будете робити під час написання React коду.
7
+
Інколи ви хочете, щоб стан двох компонент завжди змінювався разом. Щоб так зробити, видаліть стан з обох компонент, перенесіть його до їхнього найближчого спільного батька та потім передайте його вниз до них завдяки пропсам. Це відоме як *підняття стану вгору* і це одна з найпоширеніших речей, які ви будете робити під час написання React коду.
8
8
9
9
</Intro>
10
10
@@ -17,13 +17,13 @@ title: Спільний доступ до стану між компонента
17
17
18
18
## Підняття стану на прикладі {/*lifting-state-up-by-example*/}
19
19
20
-
В цьому прикладі, батьківський `Accordion`компонента рендерить дві окремі `Panel`і:
20
+
В цьому прикладі, батьківський `Accordion`компонент рендерить дві окремі `Panel`і:
21
21
22
22
*`Accordion`
23
23
-`Panel`
24
24
-`Panel`
25
25
26
-
Кожна`Panel`компонента має булевий `isActive` стан, що визначає чи її вміст видимий.
26
+
Кожний`Panel`компонент має булевий `isActive` стан, що визначає чи її вміст видимий.
27
27
28
28
Натисніть кнопку Показати для обох панелей:
29
29
@@ -73,33 +73,33 @@ h3, p { margin: 5px 0px; }
73
73
74
74
</Sandpack>
75
75
76
-
Notice how pressing one panel's button does not affect the other panel--they are independent.
76
+
Зверніть увагу, що натискання кнопки однієї панелі не впливає на іншу панель--вони незалежні.
77
77
78
78
<DiagramGroup>
79
79
80
-
<Diagramname="sharing_state_child"height={367}width={477}alt="Diagram showing a tree of three components, one parent labeled Accordion and two children labeled Panel. Both Panel components contain isActive with value false.">
80
+
<Diagramname="sharing_state_child"height={367}width={477}alt="Діаграма показує дерево з трьох компонент, один батько з назвою Accordion і два дочірні компоненти з назвами Panel. Обидва компоненти Panel містять isActive зі значенням false.">
81
81
82
-
Initially, each `Panel`'s `isActive` state is `false`, so they both appear collapsed
82
+
Спочатку стан `isActive` кожної `Panel` дорівнює `false`, тому вони обидві виглядають згорнутими
83
83
84
84
</Diagram>
85
85
86
-
<Diagramname="sharing_state_child_clicked"height={367}width={480}alt="The same diagram as the previous, with the isActive of the first child Panel component highlighted indicating a click with the isActive value set to true. The second Panel component still contains value false." >
86
+
<Diagramname="sharing_state_child_clicked"height={367}width={480}alt="Та сама діаграма, що й попередня, з виділеним isActive першого дочірнього компонента Panel, що вказує на клік зі значенням isActive, встановленим у true. Другий компонент Panel все ще містить значення false." >
87
87
88
-
Clicking either `Panel`'s button will only update that `Panel`'s `isActive`state alone
88
+
Натискання на будь-яку з кнопок `Panel` призведе до оновлення стану `isActive`тільки цієї `Panel`.
89
89
90
90
</Diagram>
91
91
92
92
</DiagramGroup>
93
93
94
-
**But now let's say you want to change it so that only one panel is expanded at any given time.**With that design, expanding the second panel should collapse the first one. How would you do that?
94
+
**Але тепер припустимо, що ви хочете змінити це так, щоб тільки одна панель була розгорнути в будь-який момент часу.**При такому дизайні, розгортання другої панелі повинно згорнути першу. Як би ви це зробили?
95
95
96
-
To coordinate these two panels, you need to "lift their state up" to a parent component in three steps:
96
+
Щоб скоординувати ці дві панелі, вам потрібно "підняти їхній стан вгору" до батьківського компонента в три кроки:
97
97
98
-
1.**Remove**state from the child components.
99
-
2.**Pass**hardcoded data from the common parent.
100
-
3.**Add**state to the common parent and pass it down together with the event handlers.
98
+
1.**Видалити**стан із дочірніх компонент.
99
+
2.**Передати**незмінні дані від спільного батька.
100
+
3.**Додати**стан до спільного батька і передати його вниз разом з обробниками подій.
101
101
102
-
This will allow the `Accordion` component to coordinate both `Panel`s and only expand one at a time.
102
+
Це дозволить компоненту `Accordion`скоординувати обидві `Panel` і розгортати тільки одну на раз.
103
103
104
104
### Step 1: Remove state from the child components {/*step-1-remove-state-from-the-child-components*/}
0 commit comments