Skip to content

Commit 272c00b

Browse files
committed
Fixes based on review
1 parent 086de01 commit 272c00b

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

Diff for: src/content/learn/state-a-components-memory.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,8 @@ button {
163163

164164
Хук [`useState`](/reference/react/useState) забяспечвае наступнае:
165165

166-
1. **Пераменная стану** для захавання даных паміж рэндэрамі.
167-
2. **Функцыя задання стану** для абнаўлення пераменнай і запуску паўторнага рэндэру кампанента.
166+
1. **Пераменную стану** для захавання даных паміж рэндэрамі.
167+
2. **Функцыю задання стану** для абнаўлення пераменнай і запуску паўторнага рэндэру кампанента.
168168

169169
## Дадаванне пераменнай стану {/*adding-a-state-variable*/}
170170

@@ -356,7 +356,7 @@ const [index, setIndex] = useState(0);
356356

357357
<Note>
358358

359-
Згодна з пагадненнем, гэту пару прынята называць як `const [something, setSomething]`. Вы можаце называць гэту пару як хочаце, але пагадненні палягчаюць разуменне розных праектаў.
359+
У адпаведнасці з пагадненнем, гэту пару прынята называць як `const [something, setSomething]`. Вы можаце называць гэту пару як хочаце, але пагадненні палягчаюць разуменне розных праектаў.
360360

361361
</Note>
362362

@@ -527,9 +527,9 @@ button {
527527

528528
Магчыма, вы заўважылі, што выклік `useState` не атрымлівае ніякай інфармацыі аб тым, *на якую* пераменную стану ён спасылаецца. Няма «ідэнтыфікатара», які перадаецца ў `useState`, дык як ён ведае, якую з пераменных стану вярнуць? Ён выкарыстоўвае нейкую магію, накшталт разбору вашых функцый? Адказ — не.
529529

530-
Замест гэтага, каб забяспечыць іх лаканічны сінтаксіс, хукі **разлічваюць на стабільны парадак выклікаў на кожным рэндэры аднаго і таго ж кампанента.** Гэта добра працуе на практыцы, таму што калі вы будзеце прытрымлівацца правіла вышэй («выклікайце хукі толькі на верхнім узроўні»), хукі заўсёды будуць выклікацца ў адным і тым жа парадку. Акрамя таго, [убудова linter] (https://www.npmjs.com/package/eslint-plugin-react-hooks) дазваляе выявіць большасць памылак.
530+
Замест гэтага, каб забяспечыць іх лаканічны сінтаксіс, хукі **разлічваюць на стабільны парадак выклікаў на кожным рэндэры аднаго і таго ж кампанента.** Гэта добра працуе на практыцы, таму што калі вы будзеце прытрымлівацца правіла вышэй («выклікайце хукі толькі на верхнім узроўні»), хукі заўсёды будуць выклікацца ў адным і тым жа парадку. Акрамя таго, [убудова для лінтара](https://www.npmjs.com/package/eslint-plugin-react-hooks) дазваляе выявіць большасць памылак.
531531

532-
Пад капотам React захоўвае масіў пар станаў для кожнага кампанента. Ён таксама падтрымлівае бягучы індэкс пары, якому перад рэндэрам задаецца значэнне `0`. Кожны раз, калі вы выклікаеце `useState`, React дае вам наступную пару станаў і павялічвае індэкс. Больш даведацца аб гэтым механізме вы можаце ў артыкуле «[Хукі ў React: не магія, а проста масівы (React Hooks: Not Magic, Just Arrays)](https://medium.com/@ryardley/react-hooks-not-magic-just-arrays-cd4f1857236e)».
532+
Пад капотам React захоўвае масіў пар станаў для кожнага кампанента. Ён таксама падтрымлівае бягучы індэкс пары, якому перад рэндэрам задаецца значэнне `0`. Кожны раз, калі вы выклікаеце `useState`, React дае вам наступную пару станаў і павялічвае індэкс. Больш даведацца аб гэтым механізме вы можаце ў артыкуле «[React Hooks: Not Magic, Just Arrays](https://medium.com/@ryardley/react-hooks-not-magic-just-arrays-cd4f1857236e)» (Хукі ў React: не магія, а проста масівы).
533533

534534
У гэтым прыкладзе **не выкарыстоўваецца React**, але ён дае вам уяўленне аб тым, як `useState` працуе ўнутры:
535535

@@ -892,13 +892,13 @@ button {
892892

893893
Гэта тое, што адрознівае стан ад звычайных пераменных, якія вы можаце аб'явіць у верхняй частцы вашага модуля. Стан не прывязаны да пэўнага выкліку функцыі або месца ў кодзе, ён «лакальны» для пэўнага месца на экране. Вы адрэндэрылі два кампаненты `<Gallery />`, таму іх стан захоўваецца асобна.
894894

895-
Таксама звярніце ўвагу на тое, што кампанент `Page` нічога не «ведае» пра стан кампанента `Gallery` і нават пра тое, ці ёсць ён у яго наогул. У адрозненне ад пропсаў, **стан з'яўляецца цалкам прыватным для кампанента, які яго аб'яўляе.** Бацькоўскі кампанент не можа змяніць яго. Дзякуючы гэтаму дадаванне стану да любога кампанента або яго выдаленне, не ўплывае на астатнія кампаненты.
895+
Таксама звярніце ўвагу на тое, што кампанент `Page` нічога не «ведае» пра стан кампанента `Gallery` і нават пра тое, ці ёсць ён у яго наогул. У адрозненне ад пропсаў, **стан з'яўляецца цалкам прыватным для кампанента, які яго аб'яўляе.** Бацькоўскі кампанент не можа змяніць яго. Дзякуючы гэтаму, дадаванне стану да любога кампанента або яго выдаленне не ўплывае на астатнія кампаненты.
896896

897-
Што рабіць, калі вы хочаце, каб абедзве галерэі сінхранізавалі свае станы? Правільны спосаб зрабіць гэта ў React — гэта *выдаліць* стан з даччыных кампанентаў і дадаць яго да іх бліжэйшага агульнага бацькоўскага кампанента. Наступныя некалькі старонак будуць прысвечаны арганізацыі стану аднаго кампанента, але мы вернемся да гэтай тэмы ў раздзеле [Сумеснае выкарыстанне стану кампанентамі.](/learn/sharing-state-between-components)
897+
Што рабіць, калі вы хочаце, каб абедзве галерэі сінхранізавалі свае станы? Правільны спосаб зрабіць гэта ў React — гэта *выдаліць* стан з даччыных кампанентаў і дадаць яго да іх найбліжэйшага агульнага бацькоўскага кампанента. Наступныя некалькі старонак будуць прысвечаны арганізацыі стану аднаго кампанента, але мы вернемся да гэтай тэмы на старонцы «[Сумеснае выкарыстанне стану кампанентамі.](/learn/sharing-state-between-components)»
898898

899899
<Recap>
900900

901-
* Выкарыстоўвайце пераменную стану, калі кампаненту трэба «запомніць» некаторую інфармацыю паміж рэндэрамі.
901+
* Выкарыстоўвайце пераменную стану калі кампаненту трэба «запомніць» некаторую інфармацыю паміж рэндэрамі.
902902
* Пераменныя стану аб'яўляюцца з дапамогай выкліку хука `useState`.
903903
* Хукі — гэта спецыяльныя функцыі, якія пачынаюцца з `use`. Яны дазваляюць падключацца («hook into») да функцый React, такіх як стан.
904904
* Хукі могуць нагадваць імпарт: яны павінны выклікацца безумоўна. Выклік хукаў, у тым ліку `useState`, дзейнічае толькі на верхнім узроўні кампанента або іншага хука.
@@ -1218,7 +1218,7 @@ img { width: 120px; height: 120px; }
12181218

12191219
</Sandpack>
12201220

1221-
Звярніце ўвагу, як функцыі `hasPrev` і `hasNext` выкарыстоўваюцца *адначасова* і ў JSX і ўнутры апрацоўшчыка падзей! Гэты зручны шаблон працуе, таму што функцыі апрацоўшчыкаў падзей [«замыкаюць»](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures) любыя пераменныя, аб'яўленыя падчас рэндэру.
1221+
Звярніце ўвагу, як пераменныя `hasPrev` і `hasNext` выкарыстоўваюцца *адначасова* і ў JSX і ўнутры апрацоўшчыка падзей! Гэты зручны шаблон працуе таму, што функцыі апрацоўшчыкаў падзей [«замыкаюць»](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures) любыя пераменныя, аб'яўленыя падчас рэндэру.
12221222

12231223
</Solution>
12241224

@@ -1273,7 +1273,7 @@ h1 { margin-top: 10px; }
12731273

12741274
<Solution>
12751275

1276-
Спачатку імпартуйце `useState` з React. Затым заменіце `firstName` і `lastName` пераменнымі стану, аб'яўленымі праз выклік `useState`. Нарэшце, заменіце кожнае прызначэнне `firstName = ...` на `setFirstName(...)` і зрабіце тое ж самае для `lastName`. Не забудзьце таксама абнавіць функцыю `handleReset`, каб кнопка скіду таксама працавала.
1276+
Спачатку імпартуйце `useState` з React. Затым замяніце `firstName` і `lastName` пераменнымі стану, аб'яўленымі праз выклік `useState`. Нарэшце, замяніце кожнае прызначэнне `firstName = ...` на `setFirstName(...)` і зрабіце тое ж самае для `lastName`. Не забудзьце таксама абнавіць функцыю `handleReset`, каб кнопка скіду таксама працавала.
12771277

12781278
<Sandpack>
12791279

@@ -1451,11 +1451,11 @@ export default function FeedbackForm() {
14511451

14521452
#### Выдаліце непатрэбны стан {/*remove-unnecessary-state*/}
14531453

1454-
Пры націсканні на кнопку праграма павінна запытаць імя карыстальніка, а затым адлюстроўваць прывітанне. Вы спрабавалі выкарыстоўваць стан, каб захаваць імя, але па нейкай прычыне заўсёды паказваецца «Вітаю, !».
1454+
Пры націсканні на кнопку, праграма павінна запытаць імя карыстальніка, а затым адлюстроўваць прывітанне. Вы спрабавалі выкарыстоўваць стан, каб захаваць імя, але па нейкай прычыне заўсёды паказваецца «Вітаю, !».
14551455

14561456
Каб выправіць гэты код, выдаліце непатрэбную пераменную стану. (Мы абмяркуем [чаму гэта не спрацавала](/learn/state-as-a-snapshot) пазней.)
14571457

1458-
Ці можаце растлумачыць, чаму гэтая пераменная стану была не патрэбна?
1458+
Ці можаце растлумачыць, чаму гэтая пераменная стану не была патрэбна?
14591459

14601460
<Sandpack>
14611461

Diff for: src/sidebarLearn.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
"path": "/learn/responding-to-events"
104104
},
105105
{
106-
"title": "State: A Component's Memory",
106+
"title": "Стан: памяць кампанента",
107107
"path": "/learn/state-a-components-memory"
108108
},
109109
{

0 commit comments

Comments
 (0)