Skip to content

Commit 5aa2f00

Browse files
committed
Fixing review comments
1 parent 0cddc62 commit 5aa2f00

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

src/content/learn/responding-to-events.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ React дазваляе дадаваць *апрацоўшчыкі падзей*
1818

1919
## Дадаванне апрацоўшчыкаў падзей {/*adding-event-handlers*/}
2020

21-
Каб дадаць апрацоўшчык падзеі, спачатку трэба вызначыце функцыю, а потым [перадаць яе ў якасці пропса](/learn/passing-props-to-a-component) ў адпаведны JSX тэг. Напрыклад, вось кнопка, якая пакуль нічога не робіць:
21+
Каб дадаць апрацоўшчык падзеі, спачатку трэба вызначыць функцыю, а потым [перадаць яе ў якасці пропса](/learn/passing-props-to-a-component) ў адпаведны JSX тэг. Напрыклад, вось кнопка, якая пакуль нічога не робіць:
2222

2323
<Sandpack>
2424

@@ -91,7 +91,7 @@ button { margin-right: 10px; }
9191

9292
Функцыі, якія перадаюцца ў апрацоўшчыкі падзей, павінны перадавацца, а не выклікацца. Напрыклад:
9393

94-
| перадача функцыі (правільна) | выклік функцыі (няправільны) |
94+
| перадача функцыі (правільна) | выклік функцыі (няправільна) |
9595
| -------------------------------- | ---------------------------------- |
9696
| `<button onClick={handleClick}>` | `<button onClick={handleClick()}>` |
9797

@@ -101,14 +101,14 @@ button { margin-right: 10px; }
101101

102102
Калі вы пішаце ўбудаваны (inline) код, тая ж пастка праяўляецца па-іншаму:
103103

104-
| перадача функцыі (правільна) | выклік функцыі (няправільны) |
104+
| перадача функцыі (правільна) | выклік функцыі (няправільна) |
105105
| --------------------------------------- | --------------------------------- |
106106
| `<button onClick={() => alert('...')}>` | `<button onClick={alert('...')}>` |
107107

108-
Калі мы перададзім убудаваны код наступным чынам, то ён не будзе выкананы пры націску кнопкі — ён будзе выконвацца пры кожным рэндэрынгу кампанента:
108+
Калі мы перададзім убудаваны код наступным чынам, то ён не будзе выкананы пры націсканні кнопкі — ён будзе выконвацца пры кожным рэндэрынгу кампанента:
109109

110110
```jsx
111-
// Гэта паведамленне з'яўляецца пры рэндэрынгу кампанента, а не пры націску кнопкі!
111+
// Гэта паведамленне з'яўляецца пры рэндэрынгу кампанента, а не пры націсканні кнопкі!
112112
<button onClick={alert('Вы націснулі на мяне!')}>
113113
```
114114

@@ -224,7 +224,7 @@ button { margin-right: 10px; }
224224
- `PlayButton` перадае `handlePlayClick` у якасці пропса `onClick` у кампанент `Button`.
225225
- `UploadButton` перадае `() => alert('Запампоўваецца!')` у якасці пропса `onClick` у кампанент `Button`.
226226

227-
Нарэшце, ваш кампанент `Button` прымае пропс пад назвай `onClick`. Ён перадае гэты пропс непасрэдна ва ўбудаваны браўзерны кампанент `<button>` з дапамогай `onClick={onClick}`. Гэта загадвае React выклікаць перададзеную функцыю пры націску.
227+
Нарэшце, ваш кампанент `Button` прымае пропс пад назвай `onClick`. Ён перадае гэты пропс непасрэдна ва ўбудаваны браўзерны кампанент `<button>` з дапамогай `onClick={onClick}`. Гэта загадвае React выклікаць перададзеную функцыю пры націсканні.
228228

229229
Калі вы выкарыстоўваеце [дызайн-сістэму](https://uxdesign.cc/everything-you-need-to-know-about-design-systems-54b109851969), то звычайна такія кампаненты, як кнопкі, змяшчаюць стылі, але не вызначаюць паводзіны. Замест гэтага кампаненты, як `PlayButton` і `UploadButton`, будуць перадаваць апрацоўшчыкі падзей уніз па іерархіі.
230230

@@ -423,7 +423,7 @@ button { margin: 5px; }
423423

424424
#### Перахопліванне падзей {/*capture-phase-events*/}
425425

426-
У рэдкіх выпадках вам можа спатрэбіцца перахапіць усе падзеі на даччыных элементах, *нават калі яны спынілі распаўсюджванне*. Напрыклад, магчыма, вы хочаце зарэгістраваць кожны націск мышы ў аналітыцы, незалежна ад логікі распаўсюджвання. Для гэтага можна дадаць `Capture` у канец назвы падзеі:
426+
У рэдкіх выпадках вам можа спатрэбіцца перахапіць усе падзеі на даччыных элементах, *нават калі яны спынілі распаўсюджванне*. Напрыклад, магчыма, вы хочаце зарэгістраваць кожнае націсканне мышы ў аналітыцы, незалежна ад логікі распаўсюджвання. Для гэтага можна дадаць `Capture` у канец назвы падзеі:
427427

428428
```js
429429
<div onClickCapture={() => { /* гэта адбываецца ў першую чаргу */ }}>
@@ -519,7 +519,7 @@ button { margin-left: 5px; }
519519

520520
Вядома! Апрацоўшчыкі падзей — гэта лепшае месца для пабочных эфектаў.
521521

522-
У адрозненне ад функцый рэндэрынгу, апрацоўшчыкі падзей не павінны быць [чыстымі функцыямі](/learn/keeping-components-pure), таму гэта выдатнае месца, каб *змяніць* што-небудзь — напрыклад, змяніць значэнне ўводу ў адказ на набор тэксту або змяніць спіс у адказ на націск кнопкі. Аднак, каб змяніць нейкую інфармацыю, спачатку яе трэба неяк захаваць. У React для гэтага выкарыстоўваецца [стан — памяць кампанента.](/learn/state-a-components-memory) Пра ўсё гэта вы даведаецеся на наступнай старонцы.
522+
У адрозненне ад функцый рэндэрынгу, апрацоўшчыкі падзей не павінны быць [чыстымі функцыямі](/learn/keeping-components-pure), таму гэта выдатнае месца, каб *змяніць* што-небудзь — напрыклад, змяніць значэнне ўводу ў адказ на набор тэксту або змяніць спіс у адказ на націсканне кнопкі. Аднак, каб змяніць нейкую інфармацыю, спачатку яе трэба неяк захаваць. У React для гэтага выкарыстоўваецца [стан — памяць кампанента.](/learn/state-a-components-memory) Пра ўсё гэта вы даведаецеся на наступнай старонцы.
523523

524524
<Recap>
525525

@@ -622,9 +622,9 @@ export default function LightSwitch() {
622622

623623
#### Падключыце апрацоўшчыкі падзей {/*wire-up-the-events*/}
624624

625-
Кампанент `ColorSwitch` адлюстроўвае кнопку, якая павінна змяняць колер старонкі. Падключыце кнопку да апрацоўшчыка падзей `onChangeColor`, які кампанент атрымлівае ад бацькоўскага кампанента ў якасці пропса, такім чынам, каб націск на кнопку змяніў колер старонкі.
625+
Кампанент `ColorSwitch` адлюстроўвае кнопку, якая павінна змяняць колер старонкі. Падключыце кнопку да апрацоўшчыка падзей `onChangeColor`, які кампанент атрымлівае ад бацькоўскага кампанента ў якасці пропса, такім чынам, каб націсканне на кнопку змяніла колер старонкі.
626626

627-
Пасля таго, як вы гэта зробіце, звярніце ўвагу, што націсканне кнопкі таксама павялічвае лічыльнік націскаў на старонцы. Ваш калега, які напісаў бацькоўскі кампанент, настойвае на тым, што `onChangeColor` не павялічвае ніякіх лічыльнікаў. Што яшчэ можа адбывацца? Выправіце гэта так, каб націск на кнопку *толькі* змяняў колер, а _не_ павялічваў лічыльнік.
627+
Пасля таго, як вы гэта зробіце, звярніце ўвагу, што націсканне кнопкі таксама павялічвае лічыльнік націсканняў на старонцы. Ваш калега, які напісаў бацькоўскі кампанент, настойвае на тым, што `onChangeColor` не павялічвае ніякіх лічыльнікаў. Што яшчэ можа адбывацца? Выправіце гэта так, каб націсканне на кнопку *толькі* змяняла колер, а _не_ павялічвала лічыльнік.
628628

629629
<Sandpack>
630630

@@ -668,7 +668,7 @@ export default function App() {
668668
<ColorSwitch onChangeColor={handleChangeColor} />
669669
<br />
670670
<br />
671-
<h2>Колькасць націскаў: {clicks}</h2>
671+
<h2>Колькасць націсканняў: {clicks}</h2>
672672
</div>
673673
);
674674
}
@@ -680,7 +680,7 @@ export default function App() {
680680

681681
Спачатку трэба дадаць апрацоўшчык падзеі, напрыклад, так: `<button onClick={onChangeColor}>`.
682682

683-
Аднак пры гэтым узнікае праблема з павелічэннем лічыльніка пры націску на кнопку. Калі `onChangeColor`, як кажа ваш калега, не робіць гэтага, тады праблема заключаецца ў тым, што гэтая падзея распаўсюджваецца, «ўсплывае» ўверх, і нейкі апрацоўшчык падзей вышэй змяняе лічыльнік. Каб вырашыць гэтую праблему, трэба спыніць распаўсюджванне падзеі. Але не забывайце, што вы ўсё роўна павінны выклікаць `onChangeColor`.
683+
Аднак пры гэтым узнікае праблема з павелічэннем лічыльніка пры націсканні на кнопку. Калі `onChangeColor`, як кажа ваш калега, не робіць гэтага, тады праблема заключаецца ў тым, што гэтая падзея распаўсюджваецца, «ўсплывае» ўверх, і нейкі апрацоўшчык падзей вышэй змяняе лічыльнік. Каб вырашыць гэтую праблему, трэба спыніць распаўсюджванне падзеі. Але не забывайце, што вы ўсё роўна павінны выклікаць `onChangeColor`.
684684

685685
<Sandpack>
686686

@@ -727,7 +727,7 @@ export default function App() {
727727
<ColorSwitch onChangeColor={handleChangeColor} />
728728
<br />
729729
<br />
730-
<h2>Колькасць націскаў: {clicks}</h2>
730+
<h2>Колькасць націсканняў: {clicks}</h2>
731731
</div>
732732
);
733733
}

0 commit comments

Comments
 (0)