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
Tutaj, komponent `Toolbar` renderuje `PlayBytton` i `UploadButton`:
223
+
Tutaj komponent `Toolbar` renderuje `PlayButton` i `UploadButton`:
224
224
225
-
-`PlayButton` przekazuje `handlePlayClick` jako właściwość `onClick` do `Button` wewnątrz.
226
-
-`UploadButton` przekazuje `() => alert('Dodawanie!')` jako właściwość `onClick` do `Button` wewnątrz.
225
+
-`PlayButton` przekazuje `handlePlayClick` jako właściwość `onClick` do wnętrza `Button`.
226
+
-`UploadButton` przekazuje `() => alert('Dodawanie!')` jako właściwość `onClick` do wnętrza `Button`.
227
227
228
228
W końcu twój komponent `Button` akceptuje właściwość zwaną `onClick`. Przekazuje ją bezpośrednio do wbudowanego w przeglądarkę `<button>` z `onClick={onClick}`. Ten wycinek mówi Reactowi, aby wywołał ją na kliknięcie.
229
229
@@ -233,7 +233,7 @@ Jeśli używasz [systemów projektu](https://uxdesign.cc/everything-you-need-to-
233
233
234
234
Komponenty wbudowane tj. `<button>` i `<div>` wspierają jedynie [nazwy zdarzeń przeglądarki](/reference/react-dom/components/common#common-props) jak `onClick`. Jednak, gdy budujesz własne komponenty, możesz nazywać ich właściwości procedur obsługi jakkolwiek chcesz.
235
235
236
-
Według konwencji, właściwości procedur obsługi zdarzeń powinny zaczynać się od `on` i wielkiej litery tuż za nim.
236
+
Według konwencji, właściwości procedur obsługi zdarzeń powinny zaczynać się od `on` i dużej litery tuż za nim.
237
237
238
238
Na przykład, właściwość `onClick` komponentu `Button` mogłaby być nazwana `onSmash`:
239
239
@@ -252,7 +252,7 @@ export default function App() {
W tym przykładzie `<button onClick={onSmash}>` pokazuje, że przeglądarkowy `<button>` (lowercase) nadal potrzebuje właściwości `onClick`, ale jej nazwa otrzymana przez twój własny komponent `Button` może być, jaka chcesz!
272
272
273
-
Gdy twój komponent wspiera wiele interakcji, możesz nazwać właściwości procedur obsługi zdarzeń dla elementów typowych w twojej aplikacji. Na przykład, ten komponent `Toolbar` otrzymuje procedury `onPlayMovie` i `onUploadImage`:
273
+
Gdy twój komponent wspiera wiele interakcji, możesz nazwać właściwości procedur obsługi zdarzeń zgodnie z pojęciami typowymi dla twojej aplikacji. Na przykład, ten komponent `Toolbar` otrzymuje procedury `onPlayMovie` i `onUploadImage`:
274
274
275
275
<Sandpack>
276
276
@@ -288,10 +288,10 @@ function Toolbar({ onPlayMovie, onUploadImage }) {
288
288
return (
289
289
<div>
290
290
<Button onClick={onPlayMovie}>
291
-
Odtwórz Film!
291
+
Odtwórz film
292
292
</Button>
293
293
<Button onClick={onUploadImage}>
294
-
Dodaj Obraz!
294
+
Dodaj zdjęcie
295
295
</Button>
296
296
</div>
297
297
);
@@ -320,9 +320,9 @@ Upewnij się, że używasz poprawnego tagu HTML dla swoich procedur obsługi zda
Procedury obsługi zdarzeń wyłapią również zdarzenia z któregokolwiek komponentu potomnego. Mówimy wtedy, że zdarzenie "bąbelkuje" (ang. "bubbles") lub "jest przekazywane" (ang. "propagates") w górę drzewa: Zaczyna się to tam, gdzie zdarzenie miało miejsce, a potem idzie w górę.
325
+
Procedury obsługi zdarzeń wyłapią również zdarzenia z któregokolwiek komponentu potomnego. Mówimy wtedy, że zdarzenie "bąbelkuje" (ang. _bubbles_) lub "propaguje" (ang. _propagates_) w górę drzewa: zaczyna się to tam, gdzie zdarzenie miało miejsce, a potem idzie w górę.
326
326
327
327
Ten `<div>` zawiera dwa przyciski. Oba elementy `<div>` i każdy przycisk mają swoją własną obsługę `onClick`. Jak myślisz, która z nich zostanie uruchomiona, gdy naciśniesz przycisk?
328
328
@@ -332,13 +332,13 @@ Ten `<div>` zawiera dwa przyciski. Oba elementy `<div>` i każdy przycisk mają
332
332
exportdefaultfunctionToolbar() {
333
333
return (
334
334
<div className="Toolbar" onClick={() => {
335
-
alert('Nasisnąłeś na pasek zadań!');
335
+
alert('Naciśnięto na pasek zadań!');
336
336
}}>
337
337
<button onClick={() =>alert('Odtwarzanie!')}>
338
-
Odtwórz Film!
338
+
Odtwórz film
339
339
</button>
340
340
<button onClick={() =>alert('Dodawanie!')}>
341
-
Dodaj Obraz!
341
+
Dodaj zdjęcie
342
342
</button>
343
343
</div>
344
344
);
@@ -363,11 +363,11 @@ W Reakcie przekazywane jest każde zdarzenie poza `onScroll`, które działa tyl
Procedury obsługi zdarzeń otrzymują jako jedyny argument **obiekt zdarzenia** (ang. _event object_). Z definicji nazywany jest `e`, co pochodzi od angielskiego "event". Możesz go użyć do odczytu informacji o zdarzeniu
368
+
Procedury obsługi zdarzeń otrzymują jako jedyny argument **obiekt zdarzenia** (ang. _event object_). Zwyczajowo nazywany jest `e`, co pochodzi od angielskiego "event". Możesz go użyć do odczytu informacji o zdarzeniu
369
369
370
-
Poza tym, taki obiekt pozwala zatrzymać przekazanie. Jeśli chcesz powstrzymać zdarzenie od dotarcia do komponentu nadrzędnego, musisz wywołać `e.stopPropagation()` jak w tym komponencie `Button`:
370
+
Poza tym, taki obiekt pozwala zatrzymać propagację. Jeśli chcesz powstrzymać zdarzenie od dotarcia do komponentu nadrzędnego, musisz wywołać `e.stopPropagation()` jak w tym komponencie `Button`:
371
371
372
372
<Sandpack>
373
373
@@ -386,13 +386,13 @@ function Button({ onClick, children }) {
386
386
exportdefaultfunctionToolbar() {
387
387
return (
388
388
<div className="Toolbar" onClick={() => {
389
-
alert('Nacisnąłeś pasek zadań!');
389
+
alert('Naciśnięto pasek zadań!');
390
390
}}>
391
391
<Button onClick={() =>alert('Odtwarzanie!')}>
392
-
Odtwórz film!
392
+
Odtwórz film
393
393
</Button>
394
394
<Button onClick={() =>alert('Dodawanie!')}>
395
-
Dodaj zdjęcie!
395
+
Dodaj zdjęcie
396
396
</Button>
397
397
</div>
398
398
);
@@ -409,14 +409,14 @@ button { margin: 5px; }
409
409
410
410
</Sandpack>
411
411
412
-
Gdy naciśniesz przycisk:
412
+
Gdy naciskasz przycisk:
413
413
414
414
1. React wywołuje procedurę `onClick` przekazaną do `<button>`.
415
415
2. Ta procedura, zdefiniowana w `Button`, wykonuje następujące czynności:
416
416
* Wywołuje `e.stopPropagation()`, powstrzymując obiekt przed przekazaniem dalej.
417
-
* Wywołuje funkcję `onClick`, która jest właściwością otrzymaną z komponentu `Toolbar`.
417
+
* Wywołuje funkcję `onClick`, która jest właściwością przekazaną z komponentu `Toolbar`.
418
418
3. Ta funkcja, zdefiniowana w komponencie `Toolbar`, wyświetla swój własny alert.
419
-
4. Ponieważ zatrzymaliśmy przekazanie, procedura `onClick` nadrzędnego `<div>`a*nie* uruchamia się.
419
+
4. Ponieważ zatrzymaliśmy przekazanie, procedura `onClick` nadrzędnego elementu `<div>`*nie* uruchamia się.
420
420
421
421
Jako wynik `e.stopPropagation()`, kliknięcie przycisków pokazuje teraz pojedynczy alert (z `<button>`), zamiast 2 (z `<button>` i nadrzędnego `<div>`a). Naciśnięcie przycisku, to nie to samo co naciśnięcie otaczającego go paska zadań, zatem powstrzymanie przekazania ma sens dla tego interfejsu.
422
422
@@ -427,19 +427,19 @@ Jako wynik `e.stopPropagation()`, kliknięcie przycisków pokazuje teraz pojedyn
427
427
W niewielu przypadkach możesz musieć przechwycić wszystkie zdarzenia elementów podrzędnych, *nawet jeśli nie są przekazywane*. Na przykład, możesz chcieć zapisać każde kliknięcie w danych analitycznych, bez względu na logikę przekazywań. Możesz to zrobić dodając `Capture` do końca nazwy zdarzenia:
428
428
429
429
```js
430
-
<div onClickCapture={() => { /* to działa pierwsze*/ }}>
430
+
<div onClickCapture={() => { /* to jest uruchamiane najpierw*/ }}>
431
431
<button onClick={e=>e.stopPropagation()} />
432
432
<button onClick={e=>e.stopPropagation()} />
433
433
</div>
434
434
```
435
435
436
-
Każde zdarzenie jest przekazywane w trzech fazach:
436
+
Każde zdarzenie jest propagowane w trzech fazach:
437
437
438
438
1. Podróżuje w dół, wywołując wszystkie procedury `onClickCapture`.
3. Podróżuje w górę, wywołując wszystkie procedury `onClick`.
441
441
442
-
Przechwytywanie zdarzeń przydaje się przy tworzeniu np. routerów czy analityki, ale prawdopodobnie nie znajdzie szerszego zastosowania w kodzie aplikacji
442
+
Przechwytywanie zdarzeń przydaje się przy tworzeniu np. routerów czy analityki, ale prawdopodobnie nie znajdzie dla niego szerszego zastosowania w kodzie aplikacji.
Nie myl `e.stopPropagation()` i `e.preventDefault()`. Oba są użyteczne, ale nie powiązane:
514
+
Nie myl `e.stopPropagation()` i `e.preventDefault()`. Oba są użyteczne, ale niepowiązane:
515
515
516
-
*[`e.stopPropagation()`](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)zatrzymuje procedury obsługi zdarzeń przypisane do tagów wyżej przed uruchomieniem.
516
+
*[`e.stopPropagation()`](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)powstrzymuje procedury obsługi zdarzeń przypisane do tagów wyżej przed uruchomieniem.
517
517
*[`e.preventDefault()`](https://developer.mozilla.org/docs/Web/API/Event/preventDefault) powstrzymuje domyślne zachowanie przeglądarki dla paru zdarzeń, które je posiadają.
518
518
519
-
## Czy procedury obsługi zdarzeń mają efekty uboczne? {/*can-event-handlers-have-side-effects*/}
519
+
## Czy procedury obsługi zdarzeń mogą mieć efekty uboczne? {/*can-event-handlers-have-side-effects*/}
520
520
521
521
Oczywiście! Procedury obsługi zdarzeń to idealne miejsce na efekty uboczne.
522
522
@@ -525,14 +525,14 @@ W przeciwieństwie do funkcji renderujących, procedury obsługi zdarzeń nie mu
525
525
<Recap>
526
526
527
527
* Możesz obsługiwać zdarzenia przekazując funkcję jako właściwość do elementu takiego jak `<button>`.
528
-
* Procedury obsługi zdarzeń trzeba przekazać, **a nie wywołać!**`onClick={handleClick}`, nie `onClick={handleClick()}`.
528
+
* Procedury obsługi zdarzeń trzeba przekazać, **a nie wywołać!**Pisz `onClick={handleClick}`, nie `onClick={handleClick()}`.
529
529
* Możesz zdefiniować procedurę obsługi zdarzeń osobno lub w linii.
530
-
* Procedury obsługi zdarzeń są wewnątrz komponentu, więc mają dostęp do jego właściwości.
530
+
* Procedury obsługi zdarzeń są zdefiniowane wewnątrz komponentu, więc mają dostęp do jego właściwości.
531
531
* Możesz stworzyć procedurę obsługi w komponencie nadrzędnym i przekazać ją do podrzędnego.
532
532
* Możesz definiować właściwości dla procedur obsługi zdarzeń z nazwami nawiązującymi do aplikacji.
533
533
* Zdarzenia przekazywane są do góry. Wywołaj `e.stopPropagation()`, na pierwszym argumencie, by temu zapobiec.
534
534
* Zdarzenia mogą mieć niechciane domyślne zachowania. Wywołaj `e.preventDefault()`, by temu zapobiec.
535
-
* Wywoływanie procedury obsługi zdarzeń od razu z procedury podrzędnej, jest dobrą alternatywą dla przekazywania.
535
+
* Wywoływanie procedury obsługi zdarzeń przekazanej przez właściwość od razu w procedurze podrzędnej jest dobrą alternatywą dla propagacji.
536
536
537
537
</Recap>
538
538
@@ -594,7 +594,7 @@ export default function LightSwitch() {
594
594
595
595
</Sandpack>
596
596
597
-
Ewentualnie, możesz owinąć wywołanie funkcji w inną funkcję, w taki sposób `<button onClick={() => handleClick()}>`:
597
+
Ewentualnie, możesz owinąć wywołanie funkcji w inną funkcję w taki sposób `<button onClick={() => handleClick()}>`:
0 commit comments