From 2c4204348202cc30873bf05965e9681fb0024afe Mon Sep 17 00:00:00 2001 From: pmartyniak Date: Thu, 5 Dec 2019 09:02:59 +0100 Subject: [PATCH 01/10] feat: translate "don't call prototypes warning" Co-Authored-By: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> --- content/warnings/dont-call-proptypes.md | 48 +++++++++++++------------ 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/content/warnings/dont-call-proptypes.md b/content/warnings/dont-call-proptypes.md index 07dfa33f0..b32eaba74 100644 --- a/content/warnings/dont-call-proptypes.md +++ b/content/warnings/dont-call-proptypes.md @@ -4,17 +4,17 @@ layout: single permalink: warnings/dont-call-proptypes.html --- -> Note: +> Uwaga: > -> `React.PropTypes` has moved into a different package since React v15.5. Please use [the `prop-types` library instead](https://www.npmjs.com/package/prop-types). +> Z wersją React v15.5 `React.PropTypes` zostało przeniesione do innej paczki. Zamiast importować z paczki Reacta, używaj [biblioteki `prop-types`](https://www.npmjs.com/package/prop-types). > ->We provide [a codemod script](/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.proptypes) to automate the conversion. +> Dla ułatwienia migracji przygotowaliśmy [skrypt codemod](/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.proptypes). -In a future major release of React, the code that implements PropType validation functions will be stripped in production. Once this happens, any code that calls these functions manually (that isn't stripped in production) will throw an error. +W przyszłych wersjach Reacta kod, który implementuje funkcje walidujące PropTypes będzie wycinany na produkcji. Gdy to nastąpi, każdy kod wywoujący te funkcje bezpośrednio będzie powodował błąd (o ile także nie zostanie wycięty na produkcji). -### Declaring PropTypes is still fine {#declaring-proptypes-is-still-fine} +### Nadal można deklarować Proptypes w tradycyjny sposób {#declaring-proptypes-is-still-fine} -The normal usage of PropTypes is still supported: +Typowe użycie PropTypes wciąż jest wspierane: ```javascript Button.propTypes = { @@ -22,11 +22,11 @@ Button.propTypes = { }; ``` -Nothing changes here. +Tutaj nic się nie zmienia. -### Don’t call PropTypes directly {#dont-call-proptypes-directly} +### Nie wywołuj PropTypes bezpośrednio {#dont-call-proptypes-directly} -Using PropTypes in any other way than annotating React components with them is no longer supported: +Używanie PropTypes w jakikolwiek inny sposób, niż do opisywania komponentów, nie będzie już wspierane: ```javascript var apiShape = PropTypes.shape({ @@ -34,17 +34,18 @@ var apiShape = PropTypes.shape({ statusCode: PropTypes.number.isRequired }).isRequired; -// Not supported! +// Brak wsparcia! var error = apiShape(json, 'response'); ``` -If you depend on using PropTypes like this, we encourage you to use or create a fork of PropTypes (such as [these](https://github.com/aackerman/PropTypes) [two](https://github.com/developit/proptypes) packages). +Jeżeli logika twojej aplikacji jest uzależniona od użycia PropTypes w taki sposób, zachęcamy do stworzenia forka PropTypes lub użycia jednego z już istniejących (np. któregoś z [tych](https://github.com/aackerman/PropTypes) [dwóch](https://github.com/developit/proptypes)). -If you don't fix the warning, this code will crash in production with React 16. +Jeśli zignorujesz to ostrzeżenie, po aktualizacji Reacta do wersji 16 możesz spodziewać się krytycznych błędów na środowisku produkcyjnym. -### If you don't call PropTypes directly but still get the warning {#if-you-dont-call-proptypes-directly-but-still-get-the-warning} +### Ostrzeżenie pojawia się, mimo że nie wywołujesz PropTypes bezpośrednio {#if-you-dont-call-proptypes-directly-but-still-get-the-warning} -Inspect the stack trace produced by the warning. You will find the component definition responsible for the PropTypes direct call. Most likely, the issue is due to third-party PropTypes that wrap React’s PropTypes, for example: +Przyjrzyj się stosowi wywołań, który wyświetla się wraz z ostrzeżeniem. Znajdziesz w nim nazwę komponentu odpowiedzialnego za bezpośrednie wywołanie PropTypes. +Prawdopodobnie problem jest spowodowany przez zewnętrzną bibiliotekę, która opakowuje PropTypes. Przykładowo: ```js Button.propTypes = { @@ -55,13 +56,16 @@ Button.propTypes = { } ``` -In this case, `ThirdPartyPropTypes.deprecated` is a wrapper calling `PropTypes.bool`. This pattern by itself is fine, but triggers a false positive because React thinks you are calling PropTypes directly. The next section explains how to fix this problem for a library implementing something like `ThirdPartyPropTypes`. If it's not a library you wrote, you can file an issue against it. +Taki wzorzec sam w sobie jest w porządku, lecz powoduje on fałszywe ostrzeżenie, ponieważ React "myśli", że PropTypes wywoływane jest bezpośrednio. +W następnej sekcji przeczytasz, jak uporać się z takim ostrzeżeniem będąc autorem biblioteki, w której pojawia się implementacja czegoś podobnego do `ThirdPartyPropTypes`. Jeśli ostrzeżenie pochodzi z biblioteki, której nie jesteś autorem, możesz zgłosić błąd jej autorom. -### Fixing the false positive in third party PropTypes {#fixing-the-false-positive-in-third-party-proptypes} +### Jak poprawić fałszywe ostrzeżenie w zewnętrznych PropTypes {#fixing-the-false-positive-in-third-party-proptypes} -If you are an author of a third party PropTypes library and you let consumers wrap existing React PropTypes, they might start seeing this warning coming from your library. This happens because React doesn't see a "secret" last argument that [it passes](https://github.com/facebook/react/pull/7132) to detect manual PropTypes calls. +Jeśli jesteś autorem biblioteki operującej na PropTypes i pozwalasz użytkownikom na opakowywanie istniejących PropTypes, mogą oni natknąć się na ostrzeżenia pochodzące z twojej biblioteki. +Dzieje się tak, gdyż React nie widzi ostatniego, „ukrytego” parametru, [który jest przekazywany](https://github.com/facebook/react/pull/7132) po to, by wykryć bezpośrednie użycie PropTypes. -Here is how to fix it. We will use `deprecated` from [react-bootstrap/react-prop-types](https://github.com/react-bootstrap/react-prop-types/blob/0d1cd3a49a93e513325e3258b28a82ce7d38e690/src/deprecated.js) as an example. The current implementation only passes down the `props`, `propName`, and `componentName` arguments: +Oto, jak temu zaradzić. Jako przykładu użyjemy `deprecated` z [react-bootstrap/react-prop-types](https://github.com/react-bootstrap/react-prop-types/blob/0d1cd3a49a93e513325e3258b28a82ce7d38e690/src/deprecated.js). +Obecna implementacja przekazuje tylko `props`, `propName` i `componentName`: ```javascript export default function deprecated(propType, explanation) { @@ -79,11 +83,11 @@ export default function deprecated(propType, explanation) { } ``` -In order to fix the false positive, make sure you pass **all** arguments down to the wrapped PropType. This is easy to do with the ES6 `...rest` notation: +Aby pozbyć się błędnego ostrzeżenia, upewnij się, że przekazujesz **wszystkie** argumenty do opakowanego PropType. Łatwo to zrobić przy pomocy notacji ES6 `…rest`: ```javascript export default function deprecated(propType, explanation) { - return function validate(props, propName, componentName, ...rest) { // Note ...rest here + return function validate(props, propName, componentName, ...rest) { // dodajemy ...rest tutaj if (props[propName] != null) { const message = `"${propName}" property of "${componentName}" has been deprecated.\n${explanation}`; if (!warned[message]) { @@ -92,9 +96,9 @@ export default function deprecated(propType, explanation) { } } - return propType(props, propName, componentName, ...rest); // and here + return propType(props, propName, componentName, ...rest); // i tutaj }; } ``` -This will silence the warning. +To uciszy ostrzeżenie. From eccac0030de905468abfc16efe5b4ac939e4c3f9 Mon Sep 17 00:00:00 2001 From: pmartyniak Date: Thu, 5 Dec 2019 17:03:25 +0100 Subject: [PATCH 02/10] Translate "Refs Forwarding" page --- content/docs/forwarding-refs.md | 70 ++++++++++--------- .../customized-display-name.js | 4 +- examples/forwarding-refs/fancy-button-ref.js | 8 +-- .../fancy-button-simple-ref.js | 2 +- examples/forwarding-refs/fancy-button.js | 4 +- examples/forwarding-refs/log-props-after.js | 8 +-- 6 files changed, 51 insertions(+), 45 deletions(-) diff --git a/content/docs/forwarding-refs.md b/content/docs/forwarding-refs.md index 3318d8499..5fb835ed0 100644 --- a/content/docs/forwarding-refs.md +++ b/content/docs/forwarding-refs.md @@ -1,76 +1,82 @@ --- id: forwarding-refs -title: Forwarding Refs +title: Przekazywanie referencji permalink: docs/forwarding-refs.html --- -Ref forwarding is a technique for automatically passing a [ref](/docs/refs-and-the-dom.html) through a component to one of its children. This is typically not necessary for most components in the application. However, it can be useful for some kinds of components, especially in reusable component libraries. The most common scenarios are described below. +Przekazywanie referencji (ang. "Ref forwarding") to technika, w której [referencję](/docs/refs-and-the-dom.html) +do komponentu "podajemy dalej" do jego dziecka. Dla większości komponentów w aplikacji nie jest to potrzebne. +Może jednak okazać się przydatne w niektórych przypadkach. W szczególności w _wielokrotnie używanych_ komponentach bibliotecznych. +Najczęstsze scenariusze opisujemy poniżej. -## Forwarding refs to DOM components {#forwarding-refs-to-dom-components} +## Przekazywanie referencji do komponentów DOM {#forwarding-refs-to-dom-components} -Consider a `FancyButton` component that renders the native `button` DOM element: +Rozważmy `FancyButton` - komponent, który renderuje natywny element DOM - przycisk: `embed:forwarding-refs/fancy-button-simple.js` -React components hide their implementation details, including their rendered output. Other components using `FancyButton` **usually will not need to** [obtain a ref](/docs/refs-and-the-dom.html) to the inner `button` DOM element. This is good because it prevents components from relying on each other's DOM structure too much. +Komponenty reactowe ukrywają szczegóły swojej implementacji, w tym także wyrenderowany HTML. +Inne komponenty używające `FancyButton` **z reguły nie potrzebują** [mieć dostępu do referencji](/docs/refs-and-the-dom.html) do wewnętrznego elementu `button`. +Jest to korzystne, gdyż zapobiega sytuacji, w której komponenty są za bardzo uzależnione od struktury drzewa DOM innych komponentów. -Although such encapsulation is desirable for application-level components like `FeedStory` or `Comment`, it can be inconvenient for highly reusable "leaf" components like `FancyButton` or `MyTextInput`. These components tend to be used throughout the application in a similar manner as a regular DOM `button` and `input`, and accessing their DOM nodes may be unavoidable for managing focus, selection, or animations. +Taka enkapsulacja jest pożądana na poziomie aplikacji, w komponentach takich jak `FeedStory` czy `Comment`. Natomiast może się okazać to niewygodne w przypadku komponentów wielokrotnego użytku, będących "liśćmi" drzewa. Np. `FancyButton` albo `MyTextInput`. Takie komponenty często używane są w wielu miejscach aplikacji w podobny sposób, jak zwyczajne elementy DOM typu `button` i `input`. W wiązku z tym bezpośredni dostęp do ich DOM może okazać się konieczy, aby obsłużyć fokus, zaznaczenie, czy animacje. -**Ref forwarding is an opt-in feature that lets some components take a `ref` they receive, and pass it further down (in other words, "forward" it) to a child.** +**Przekazywanie referencji jest opcjonalną funkcjonalnością, która pozwala komponentom wziąć referencję do nich przekazaną i "podać dalej" do swojego dziecka.** -In the example below, `FancyButton` uses `React.forwardRef` to obtain the `ref` passed to it, and then forward it to the DOM `button` that it renders: +W poniższym przykładzie `FancyButton` używa `React.forwardRef`, by przejąć przekazaną do niego referencję i podać ją dalej do elementu `button`, który renderuje: `embed:forwarding-refs/fancy-button-simple-ref.js` -This way, components using `FancyButton` can get a ref to the underlying `button` DOM node and access it if necessary—just like if they used a DOM `button` directly. +Tym sposobem komponenty używające `FancyButton` mają referencję do znajdującego się w głębi elementu `button`. Mogą więc w razie potrzeby operować na komponencie tak, jakby operowały bezpośrednio na natywnym elemencie DOM. -Here is a step-by-step explanation of what happens in the above example: +Oto krok po kroku - co wydarzyło się w przykładzie powyżej: -1. We create a [React ref](/docs/refs-and-the-dom.html) by calling `React.createRef` and assign it to a `ref` variable. -1. We pass our `ref` down to `` by specifying it as a JSX attribute. -1. React passes the `ref` to the `(props, ref) => ...` function inside `forwardRef` as a second argument. -1. We forward this `ref` argument down to ` )); -// You can now get a ref directly to the DOM button: +// Możesz teraz otrzymać bezpośrednią referencję do elementu „button”: const ref = React.createRef(); Click me!; diff --git a/examples/forwarding-refs/fancy-button.js b/examples/forwarding-refs/fancy-button.js index 9dcd13e16..d40a390d3 100644 --- a/examples/forwarding-refs/fancy-button.js +++ b/examples/forwarding-refs/fancy-button.js @@ -6,7 +6,7 @@ class FancyButton extends React.Component { // ... } -// Rather than exporting FancyButton, we export LogProps. -// It will render a FancyButton though. +// Zamiast FancyButton, exportujemy LogProps. +// Jednak wyrenderowany zostanie FancyButton. // highlight-next-line export default logProps(FancyButton); diff --git a/examples/forwarding-refs/log-props-after.js b/examples/forwarding-refs/log-props-after.js index a603bd697..8ca9c3b92 100644 --- a/examples/forwarding-refs/log-props-after.js +++ b/examples/forwarding-refs/log-props-after.js @@ -9,15 +9,15 @@ function logProps(Component) { // highlight-next-line const {forwardedRef, ...rest} = this.props; - // Assign the custom prop "forwardedRef" as a ref + // 2. Przypiszmy nasz atrybut "forwardedRef" jako referencję // highlight-next-line return ; } } - // Note the second param "ref" provided by React.forwardRef. - // We can pass it along to LogProps as a regular prop, e.g. "forwardedRef" - // And it can then be attached to the Component. + // 1. Zwróć uwagę na drugi parametr "ref" dostarczony przez React.forwardRef. + // Możemy go przekazać dalej do LogProps jako zwyczajny atrybut, np. "forwardedRef". + // Następnie może on być przypisany do komponentu wewnątrz. // highlight-range{1-3} return React.forwardRef((props, ref) => { return ; From 271231c4fa72affc17ddfe03cbda3361774e8d33 Mon Sep 17 00:00:00 2001 From: Ma'niak Date: Thu, 19 Dec 2019 11:49:12 +0100 Subject: [PATCH 03/10] Update content/docs/forwarding-refs.md Co-Authored-By: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> --- content/docs/forwarding-refs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/forwarding-refs.md b/content/docs/forwarding-refs.md index 5fb835ed0..988079f45 100644 --- a/content/docs/forwarding-refs.md +++ b/content/docs/forwarding-refs.md @@ -4,7 +4,7 @@ title: Przekazywanie referencji permalink: docs/forwarding-refs.html --- -Przekazywanie referencji (ang. "Ref forwarding") to technika, w której [referencję](/docs/refs-and-the-dom.html) +Przekazywanie referencji (ang. *ref forwarding*) to technika, w której [referencję](/docs/refs-and-the-dom.html) do komponentu "podajemy dalej" do jego dziecka. Dla większości komponentów w aplikacji nie jest to potrzebne. Może jednak okazać się przydatne w niektórych przypadkach. W szczególności w _wielokrotnie używanych_ komponentach bibliotecznych. Najczęstsze scenariusze opisujemy poniżej. From e8fc3bac1c51aec5b274e141c0bef9564e6f7a02 Mon Sep 17 00:00:00 2001 From: Ma'niak Date: Thu, 19 Dec 2019 11:49:56 +0100 Subject: [PATCH 04/10] Update content/docs/forwarding-refs.md Co-Authored-By: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> --- content/docs/forwarding-refs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/forwarding-refs.md b/content/docs/forwarding-refs.md index 988079f45..66b62adf8 100644 --- a/content/docs/forwarding-refs.md +++ b/content/docs/forwarding-refs.md @@ -6,7 +6,7 @@ permalink: docs/forwarding-refs.html Przekazywanie referencji (ang. *ref forwarding*) to technika, w której [referencję](/docs/refs-and-the-dom.html) do komponentu "podajemy dalej" do jego dziecka. Dla większości komponentów w aplikacji nie jest to potrzebne. -Może jednak okazać się przydatne w niektórych przypadkach. W szczególności w _wielokrotnie używanych_ komponentach bibliotecznych. +jednak może okazać się przydatne w niektórych przypadkach, zwłaszcza w bibliotekach udostępniających uniwersalne komponenty. Najczęstsze scenariusze opisujemy poniżej. ## Przekazywanie referencji do komponentów DOM {#forwarding-refs-to-dom-components} From b084c8d2c0245f8abdc5c7225c47dd51aed519b3 Mon Sep 17 00:00:00 2001 From: Ma'niak Date: Thu, 19 Dec 2019 11:50:15 +0100 Subject: [PATCH 05/10] Update content/docs/forwarding-refs.md Co-Authored-By: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> --- content/docs/forwarding-refs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/forwarding-refs.md b/content/docs/forwarding-refs.md index 66b62adf8..6bf7b49ec 100644 --- a/content/docs/forwarding-refs.md +++ b/content/docs/forwarding-refs.md @@ -11,7 +11,7 @@ Najczęstsze scenariusze opisujemy poniżej. ## Przekazywanie referencji do komponentów DOM {#forwarding-refs-to-dom-components} -Rozważmy `FancyButton` - komponent, który renderuje natywny element DOM - przycisk: +Rozważmy komponent `FancyButton`, który renderuje natywny element DOM - przycisk: `embed:forwarding-refs/fancy-button-simple.js` Komponenty reactowe ukrywają szczegóły swojej implementacji, w tym także wyrenderowany HTML. From fdc347ecb039717e96dded87e245112990a82246 Mon Sep 17 00:00:00 2001 From: Ma'niak Date: Thu, 19 Dec 2019 11:50:51 +0100 Subject: [PATCH 06/10] Update content/docs/forwarding-refs.md Co-Authored-By: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> --- content/docs/forwarding-refs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/forwarding-refs.md b/content/docs/forwarding-refs.md index 6bf7b49ec..638f30f88 100644 --- a/content/docs/forwarding-refs.md +++ b/content/docs/forwarding-refs.md @@ -18,7 +18,7 @@ Komponenty reactowe ukrywają szczegóły swojej implementacji, w tym także wyr Inne komponenty używające `FancyButton` **z reguły nie potrzebują** [mieć dostępu do referencji](/docs/refs-and-the-dom.html) do wewnętrznego elementu `button`. Jest to korzystne, gdyż zapobiega sytuacji, w której komponenty są za bardzo uzależnione od struktury drzewa DOM innych komponentów. -Taka enkapsulacja jest pożądana na poziomie aplikacji, w komponentach takich jak `FeedStory` czy `Comment`. Natomiast może się okazać to niewygodne w przypadku komponentów wielokrotnego użytku, będących "liśćmi" drzewa. Np. `FancyButton` albo `MyTextInput`. Takie komponenty często używane są w wielu miejscach aplikacji w podobny sposób, jak zwyczajne elementy DOM typu `button` i `input`. W wiązku z tym bezpośredni dostęp do ich DOM może okazać się konieczy, aby obsłużyć fokus, zaznaczenie, czy animacje. +Taka enkapsulacja jest pożądana na poziomie aplikacji, w komponentach takich jak `FeedStory` czy `Comment`. Natomiast może się okazać to niewygodne w przypadku komponentów wielokrotnego użytku, będących "liśćmi" drzewa. Np. `FancyButton` albo `MyTextInput`. Takie komponenty często używane są w wielu miejscach aplikacji, w podobny sposób jak zwyczajne elementy DOM typu `button` i `input`. W związku z tym, bezpośredni dostęp do ich DOM może okazać się konieczy, aby obsłużyć np. fokus, zaznaczenie czy animacje. **Przekazywanie referencji jest opcjonalną funkcjonalnością, która pozwala komponentom wziąć referencję do nich przekazaną i "podać dalej" do swojego dziecka.** From fe7bcd3125bfb178218cf1c8ef200cff6572adec Mon Sep 17 00:00:00 2001 From: Ma'niak Date: Thu, 19 Dec 2019 11:55:31 +0100 Subject: [PATCH 07/10] Update examples/forwarding-refs/log-props-after.js Co-Authored-By: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> --- examples/forwarding-refs/log-props-after.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/forwarding-refs/log-props-after.js b/examples/forwarding-refs/log-props-after.js index 8ca9c3b92..7768c5d7d 100644 --- a/examples/forwarding-refs/log-props-after.js +++ b/examples/forwarding-refs/log-props-after.js @@ -17,7 +17,7 @@ function logProps(Component) { // 1. Zwróć uwagę na drugi parametr "ref" dostarczony przez React.forwardRef. // Możemy go przekazać dalej do LogProps jako zwyczajny atrybut, np. "forwardedRef". - // Następnie może on być przypisany do komponentu wewnątrz. + // Następnie może on zostać przypisany do komponentu wewnątrz. // highlight-range{1-3} return React.forwardRef((props, ref) => { return ; From 816ac7f3a3620925212658946b0ef6834117ac44 Mon Sep 17 00:00:00 2001 From: Ma'niak Date: Thu, 19 Dec 2019 12:36:45 +0100 Subject: [PATCH 08/10] Update content/docs/forwarding-refs.md Co-Authored-By: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> --- content/docs/forwarding-refs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/forwarding-refs.md b/content/docs/forwarding-refs.md index 638f30f88..f25c23a74 100644 --- a/content/docs/forwarding-refs.md +++ b/content/docs/forwarding-refs.md @@ -5,7 +5,7 @@ permalink: docs/forwarding-refs.html --- Przekazywanie referencji (ang. *ref forwarding*) to technika, w której [referencję](/docs/refs-and-the-dom.html) -do komponentu "podajemy dalej" do jego dziecka. Dla większości komponentów w aplikacji nie jest to potrzebne. +do komponentu "podajemy dalej" do jego dziecka. Dla większości komponentów w aplikacji nie jest to potrzebne, jednak może okazać się przydatne w niektórych przypadkach, zwłaszcza w bibliotekach udostępniających uniwersalne komponenty. Najczęstsze scenariusze opisujemy poniżej. From a89cb37a8295d8fd85ecf473ba610ed90d74dc03 Mon Sep 17 00:00:00 2001 From: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> Date: Sat, 14 Mar 2020 23:18:25 +0100 Subject: [PATCH 09/10] Update content/docs/forwarding-refs.md Co-Authored-By: Kamil Stepczuk <5058678+stepek@users.noreply.github.com> --- content/docs/forwarding-refs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/forwarding-refs.md b/content/docs/forwarding-refs.md index f25c23a74..fba381063 100644 --- a/content/docs/forwarding-refs.md +++ b/content/docs/forwarding-refs.md @@ -22,7 +22,7 @@ Taka enkapsulacja jest pożądana na poziomie aplikacji, w komponentach takich j **Przekazywanie referencji jest opcjonalną funkcjonalnością, która pozwala komponentom wziąć referencję do nich przekazaną i "podać dalej" do swojego dziecka.** -W poniższym przykładzie `FancyButton` używa `React.forwardRef`, by przejąć przekazaną do niego referencję i podać ją dalej do elementu `button`, który renderuje: +W poniższym przykładzie `FancyButton` używa `React.forwardRef`, by przejąć przekazaną do niego referencję i przekazać ją dalej do elementu `button`, który renderuje: `embed:forwarding-refs/fancy-button-simple-ref.js` From f281e13880cb0eeb7d0368d35f03bb017e4340b5 Mon Sep 17 00:00:00 2001 From: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> Date: Sat, 14 Mar 2020 23:21:30 +0100 Subject: [PATCH 10/10] Apply suggestions from code review --- content/docs/forwarding-refs.md | 32 ++++++++++---------- examples/forwarding-refs/fancy-button-ref.js | 2 +- examples/forwarding-refs/fancy-button.js | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/content/docs/forwarding-refs.md b/content/docs/forwarding-refs.md index fba381063..0d9f69a61 100644 --- a/content/docs/forwarding-refs.md +++ b/content/docs/forwarding-refs.md @@ -20,54 +20,54 @@ Jest to korzystne, gdyż zapobiega sytuacji, w której komponenty są za bardzo Taka enkapsulacja jest pożądana na poziomie aplikacji, w komponentach takich jak `FeedStory` czy `Comment`. Natomiast może się okazać to niewygodne w przypadku komponentów wielokrotnego użytku, będących "liśćmi" drzewa. Np. `FancyButton` albo `MyTextInput`. Takie komponenty często używane są w wielu miejscach aplikacji, w podobny sposób jak zwyczajne elementy DOM typu `button` i `input`. W związku z tym, bezpośredni dostęp do ich DOM może okazać się konieczy, aby obsłużyć np. fokus, zaznaczenie czy animacje. -**Przekazywanie referencji jest opcjonalną funkcjonalnością, która pozwala komponentom wziąć referencję do nich przekazaną i "podać dalej" do swojego dziecka.** +**Przekazywanie referencji jest opcjonalną funkcjonalnością, która pozwala komponentom wziąć przekazaną do nich referencję i "podać ją dalej" do swojego dziecka.** W poniższym przykładzie `FancyButton` używa `React.forwardRef`, by przejąć przekazaną do niego referencję i przekazać ją dalej do elementu `button`, który renderuje: `embed:forwarding-refs/fancy-button-simple-ref.js` -Tym sposobem komponenty używające `FancyButton` mają referencję do znajdującego się w głębi elementu `button`. Mogą więc w razie potrzeby operować na komponencie tak, jakby operowały bezpośrednio na natywnym elemencie DOM. +Tym sposobem komponenty używające `FancyButton` mają referencję do elementu `button` znajdującego się wewnątrz. Mogą więc, w razie potrzeby, operować na komponencie tak, jakby operowały bezpośrednio na natywnym elemencie DOM. -Oto krok po kroku - co wydarzyło się w przykładzie powyżej: +Oto wyjaśnienie krok po kroku, opisujące, co wydarzyło się w przykładzie powyżej: -1. Tworzymy [referencję Reactową](/docs/refs-and-the-dom.html) wołając `React.createRef` i przypisujemy ją do stałej `ref`. +1. Tworzymy [referencję reactową](/docs/refs-and-the-dom.html) wywołując `React.createRef` i przypisujemy ją do stałej `ref`. 1. Przekazujemy `ref` do `` przypisując ją do atrybutu JSX. -1. React przekazuje `ref` do funkcji `(props, ref) => ...` jako drugi argument wewnątrz `forwardRef`. +1. Wewnątrz `forwardRef` React przekazuje `ref` do funkcji `(props, ref) => ...` jako drugi argument. 1. Podajemy argument `ref` dalej do `