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/state-a-components-memory.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
@@ -151,17 +151,17 @@ button {
151
151
152
152
</Sandpack>
153
153
154
-
Апрацоўшчык падзей `handleClick` абнаўляе лакальную пераменную `index`. Але два моманты не даюць пабачыць змены:
154
+
Апрацоўшчык падзей `handleClick` абнаўляе лакальную пераменную `index`. Але два моманты не даюць пабачыць змены:
155
155
156
-
1.**Лакальныя пераменныя не захоўваюцца паміж рэндэрамі.** Калі React другі раз рэндэрыць гэты кампанент, ён рэндэрыць яго з нуля — не ўлічваючы ніякіх змен у лакальных пераменных.
156
+
1.**Лакальныя пераменныя не захоўваюцца паміж рэндэрамі.** Калі React рэндэрыць гэты кампанент у другі раз, ён рэндэрыць яго з нуля — не ўлічваючы ніякіх змен у лакальных пераменных.
157
157
2.**Змены ў лакальных пераменных не запускаюць паўторны рэндэр.** React не разумее, што яму трэба зноў адрэндэрыць кампанент з новымі данымі.
158
158
159
159
Для таго, каб новыя даныя з'явіліся ў кампаненце, трэба зрабіць дзве рэчы:
160
160
161
161
1.**Захаваць** даныя паміж рэндэрамі.
162
162
2.**Запусціць** рэндэр кампанента з новымі данымі (перарэндэр).
`index` — гэта пераменная стану, а `setIndex` — функцыя задання стану.
190
190
191
-
> Сінтаксіс `[` і `]` называецца [дэструктурызацыя масіву](https://javascript.info/destructuring-assignment) і дазваляе чытаць значэнні з масіву. Масіў, які вяртае `useState`, заўсёды мае два элементы.
191
+
> Сінтаксіс `[` і `]` называецца [дэструктурызацый масіву](https://javascript.info/destructuring-assignment) і дазваляе чытаць значэнні з масіву. Масіў, які вяртае `useState`, заўсёды мае два элементы.
192
192
193
193
Вось як яны працуюць разам у `handleclick`:
194
194
@@ -890,15 +890,15 @@ button {
890
890
891
891
</Sandpack>
892
892
893
-
Гэта тое, што адрознівае стан ад звычайных пераменных, якія вы можаце аб'явіць у верхняй частцы вашага модуля. Стан не прывязаны да пэўнага выкліку функцыі або месца ў кодзе, ён «лакальны» для пэўнага месца на экране. Вы адрэндэрылі два кампаненты `<Gallery />`, таму іх стан захоўваецца асобна.
893
+
Гэта тое, што адрознівае стан ад звычайных пераменных, якія вы можаце аб'явіць у верхняй частцы вашага модуля. Стан не прывязаны да пэўнага выкліку функцыі або месца ў кодзе, ён «лакальны» для пэўнага месца на экране. Вы адрэндэрылі два кампаненты `<Gallery />`, таму іх станы захоўваюцца асобна.
894
894
895
895
Таксама звярніце ўвагу на тое, што кампанент `Page` нічога не «ведае» пра стан кампанента `Gallery` і нават пра тое, ці ёсць ён у яго наогул. У адрозненне ад пропсаў, **стан з'яўляецца цалкам прыватным для кампанента, які яго аб'яўляе.** Бацькоўскі кампанент не можа змяніць яго. Дзякуючы гэтаму, дадаванне стану да любога кампанента або яго выдаленне не ўплывае на астатнія кампаненты.
896
896
897
897
Што рабіць, калі вы хочаце, каб абедзве галерэі сінхранізавалі свае станы? Правільны спосаб зрабіць гэта ў React — гэта *выдаліць* стан з даччыных кампанентаў і дадаць яго да іх найбліжэйшага агульнага бацькоўскага кампанента. Наступныя некалькі старонак будуць прысвечаны арганізацыі стану аднаго кампанента, але мы вернемся да гэтай тэмы на старонцы «[Сумеснае выкарыстанне стану кампанентамі.](/learn/sharing-state-between-components)»
898
898
899
899
<Recap>
900
900
901
-
* Выкарыстоўвайце пераменную стану калі кампаненту трэба «запомніць» некаторую інфармацыю паміж рэндэрамі.
901
+
* Выкарыстоўвайце пераменную стану калі кампаненту трэба «запомніць» нейкую інфармацыю паміж рэндэрамі.
902
902
* Пераменныя стану аб'яўляюцца з дапамогай выкліку хука `useState`.
903
903
* Хукі — гэта спецыяльныя функцыі, якія пачынаюцца з `use`. Яны дазваляюць падключацца («hook into») да функцый React, такіх як стан.
904
904
* Хукі могуць нагадваць імпарт: яны павінны выклікацца безумоўна. Выклік хукаў, у тым ліку `useState`, дзейнічае толькі на верхнім узроўні кампанента або іншага хука.
@@ -914,9 +914,9 @@ button {
914
914
915
915
#### Завяршыце галерэю {/*complete-the-gallery*/}
916
916
917
-
Калі вы націскаеце «Далей» на апошняй скульптуры, код дае збой. Выправіце логіку, каб прадухіліць збой. Вы можаце зрабіць гэта, дадаўшы дадатковую логіку ў апрацоўшчык падзей або адключыўшы кнопку, калі дзеянне немагчыма.
917
+
Калі вы націскаеце «Далей» на апошняй скульптуры, код выдае памылку. Выправіце логіку, каб прадухіліць памылку. Вы можаце зрабіць гэта, дадаўшы дадатковую логіку ў апрацоўшчык падзей або адключыўшы кнопку, калі дзеянне немагчыма.
918
918
919
-
Пасля ліквідацыі збою дадайце кнопку «Назад», якая паказвае папярэднюю скульптуру. Яна не павінна даваць збой на першай скульптуры.
919
+
Пасля ліквідацыі памылкі дадайце кнопку «Назад», якая паказвае папярэднюю скульптуру. Яна не павінна выдаваць памылку на першай скульптуры.
920
920
921
921
<Sandpack>
922
922
@@ -1330,7 +1330,7 @@ h1 { margin-top: 10px; }
1330
1330
1331
1331
<Hint>
1332
1332
1333
-
Ці існуюць нейкія абмежаванні на тое, _дзе_ могуць быць выкліканыя хукі? Ці парушае гэты кампанент якія-небудзь правілы? Праверце, ці ёсць якія-небудзь каментарыі, якія адключаюць праверку лінтара — у такіх месцах часта хаваюцца памылкі!
1333
+
Ці існуюць нейкія абмежаванні на тое, _дзе_ могуць быць выкліканы хукі? Ці парушае гэты кампанент якія-небудзь правілы? Праверце, ці ёсць якія-небудзь каментарыі, якія адключаюць праверку лінтара — у такіх месцах часта хаваюцца памылкі!
1334
1334
1335
1335
</Hint>
1336
1336
@@ -1503,7 +1503,7 @@ export default function FeedbackForm() {
1503
1503
1504
1504
</Sandpack>
1505
1505
1506
-
Пераменная стану неабходная толькі для захавання інфармацыі паміж паўторнымі рэндэрамі кампанента. У рамках аднаго апрацоўшчыка падзей добра падыдзе звычайная пераменная. Не ўводзьце пераменныя стану, калі дастаткова звычайная пераменнай.
1506
+
Пераменная стану неабходна толькі для захавання інфармацыі паміж паўторнымі рэндэрамі кампанента. У рамках аднаго апрацоўшчыка падзей добра падыдзе звычайная пераменная. Не ўводзьце пераменную стану, калі дастаткова звычайнай пераменнай.
0 commit comments