Skip to content

Commit 248c29b

Browse files
authored
Apply suggestions from code review
1 parent dcead23 commit 248c29b

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed

src/content/reference/react-dom/findDOMNode.md

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ title: findDOMNode
44

55
<Deprecated>
66

7-
Cette API sera retirée dans une future version majeure de React. [Voir les solutions alternatives](#alternatives).
7+
Cette API sera retirée d'une future version majeure de React. [Découvrez les alternatives](#alternatives).
88

99
</Deprecated>
1010

1111
<Intro>
1212

13-
`findDOMNode` trouve le nœud du navigateur pour une instance React à [composant à base de classe](/reference/react/Component).
13+
`findDOMNode` trouve le nœud DOM le plus proche associé à une instance de [composant à base de classe](/reference/react/Component).
1414

1515
```js
1616
const domNode = findDOMNode(componentInstance)
@@ -26,43 +26,43 @@ const domNode = findDOMNode(componentInstance)
2626

2727
### `findDOMNode(componentInstance)` {/*finddomnode*/}
2828

29-
Appeler `findDOMNode` pour trouver le nœud du navigateur pour une instance React à [composant à base de classe](/reference/react/Component) donnée.
29+
Appelez `findDOMNode` pour trouver le nœud DOM associé à une instance de [composant React à base de classe](/reference/react/Component) donnée.
3030

3131
```js
3232
import { findDOMNode } from 'react-dom';
3333

3434
const domNode = findDOMNode(componentInstance);
3535
```
3636

37-
[Voir les exemples ci-dessous](#usage).
37+
[Voir d'autres exemples ci-dessous](#usage).
3838

3939
#### Paramètres {/*parameters*/}
4040

41-
* `componentInstance` : Une instance de la sous-classe du [`Component`](/reference/react/Component). Par exemple `this` dans un composant à base de classe.
41+
* `componentInstance` : une instance de la sous-classe de [`Component`](/reference/react/Component). Par exemple, `this` dans un composant à base de classe.
4242

4343

4444
#### Valeur renvoyée {/*returns*/}
4545

46-
`findDOMNode` renvoie le plus proche nœud du DOM du navigateur dans une `componentInstance` donnée. Lorsqu'un composant fait le rendu à `null`, fait le rendu à `false`, `findDOMNode` renvoie `null`. Lorsqu'un composant fait le rendu d'une string, `findDOMNode` renvoie un nœud DOM sous forme de texte contenant cette valeur.
46+
`findDOMNode` renvoie le plus proche nœud du DOM du navigateur dans une `componentInstance` donnée. Lorsque le rendu d'un composant renvoie `null` ou `false`, `findDOMNode` renvoie `null`. Lorsque le rendu renvoie une chaîne de caractères, `findDOMNode` renvoie un nœud DOM textuel contenant cette valeur.
4747

4848
#### Limitations {/*caveats*/}
4949

50-
* Un composant peut renvoyer un tableau ou un [Fragment](/reference/react/Fragment) avec plusieurs enfants. Dans ce cas `findDOMNode`, renverra le nœud du DOM correspondant au premier enfant non-vide.
50+
* Un composant est susceptible de renvoyer un tableau ou un [Fragment](/reference/react/Fragment) avec plusieurs enfants. Dans ce cas `findDOMNode`, renverra le nœud DOM correspondant au premier enfant non vide.
5151

52-
* `findDOMNode` fonctionne seulement sur les composants montés (c'est-à-dire, les composants qui ont été placés dans le DOM). Si vous essayez d'appeler `this` sur un composant qui n'a pas encore été monté (comme l'appel de `findDOMNode()` dans `render()` sur un composant qui doit être crée), une exception sera levée.
52+
* `findDOMNode` fonctionne seulement sur les composants montés (c'est-à-dire les composants qui ont été placés dans le DOM). Si vous essayez de l'appeler sur un composant qui n'a pas encore été monté (comme un appel de `findDOMNode()` dans `render()` sur un composant qui n'a pas encore été créé), une exception sera levée.
5353

54-
* `findDOMNode` renvoie seulement le résultat au moment de votre appel. Si un composant enfant fait plutard le rendu d'un nœud différent, vous n'avez aucun moyen d'être informé de ce changement.
54+
* `findDOMNode` renvoie seulement le résultat au moment de votre appel. Si un composant enfant renvoie plus tard un nœud différent, vous n'avez aucun moyen d'être informé·e de ce changement.
5555

56-
* `findDOMNode` accepte une instance de composant à base de classe, il ne peut être utilisé avec les fonctions composants.
56+
* `findDOMNode` accepte une instance de composant à base de classe, il ne peut donc pas être utilisé avec des fonctions composants.
5757

5858
---
5959

6060
## Utilisation {/*usage*/}
6161

62-
### Trouver le nœud racine du DOM d'un composant à base de classe {/*finding-the-root-dom-node-of-a-class-component*/}
62+
### Trouver le nœud DOM racine d'un composant à base de classe {/*finding-the-root-dom-node-of-a-class-component*/}
6363

6464

65-
Appeler `findDOMNode` avec une instance de [composant à base de classe](/reference/react/Component) (généralement, `this`) pour trouver le nœud du DOM qu'il a affiché.
65+
Appelez `findDOMNode` avec une instance de [composant à base de classe](/reference/react/Component) (ce sera généralement `this`) pour trouver le nœud DOM qu'il a affiché.
6666

6767
```js {3}
6868
class AutoselectingInput extends Component {
@@ -77,7 +77,7 @@ class AutoselectingInput extends Component {
7777
}
7878
```
7979

80-
Ici, la variable de `input` sera défini sur l'élément DOM `<input>`. Cela vous permet de faire quelque chose avec. Par exemple, en cliquant « voir l'exemple » ci-dessous, le champ de saisi est monté, [`input.select()`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select) sélectionne tout le text dans le champ :
80+
Ici, la variable `input` sera définie à l'élément DOM `<input>`. Ça vous permet de le manipuler. Par exemple, en cliquant sur « voir l'exemple » ci-dessous, le champ de saisie est monté, puis [`input.select()`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select) sélectionnera tout le texte dans le champ :
8181

8282
<Sandpack>
8383

@@ -90,7 +90,7 @@ export default function App() {
9090
return (
9191
<>
9292
<button onClick={() => setShow(true)}>
93-
Voir l'exemple
93+
Voir lexemple
9494
</button>
9595
<hr />
9696
{show && <AutoselectingInput />}
@@ -123,9 +123,9 @@ export default AutoselectingInput;
123123

124124
## Alternatives {/*alternatives*/}
125125

126-
### Lecture du nœud DOM à partir d'une ref {/*reading-components-own-dom-node-from-a-ref*/}
126+
### Lire le nœud DOM du composant à partir d'une ref {/*reading-components-own-dom-node-from-a-ref*/}
127127

128-
Le code qui utilise `findDOMNode` est fragile parce que la connection entre le nœud JSX et le code manipulant le nœud du DOM correspondant n'est pas explicite. Par exemple, essayez d'enrober ce `<input />` dans un `<div>` :
128+
Un code qui utilise `findDOMNode` est fragile parce que la relation entre le nœud JSX et le code manipulant le nœud DOM correspondant n'est pas explicite. Essayez par exemple d'enrober cet `<input />` dans une `<div>` :
129129

130130
<Sandpack>
131131

@@ -138,7 +138,7 @@ export default function App() {
138138
return (
139139
<>
140140
<button onClick={() => setShow(true)}>
141-
Voir l'exemple
141+
Voir lexemple
142142
</button>
143143
<hr />
144144
{show && <AutoselectingInput />}
@@ -166,9 +166,9 @@ export default AutoselectingInput;
166166

167167
</Sandpack>
168168

169-
Le code sera interrompu maintenant, `findDOMNode(this)` trouve le nœud `<div>` du DOM, mais le code attend un nœud DOM `<input>`. Pour éviter ce genre de problèmes, utilisez [`createRef`](/reference/react/createRef) pour gérer un nœud DOM spécifique.
169+
Ce code plantera parce que désormais, `findDOMNode(this)` trouvera le nœud DOM `<div>` alors qu'il s'attend à un nœud DOM `<input>`. Pour éviter ce genre de problème, utilisez [`createRef`](/reference/react/createRef) pour gérer un nœud DOM spécifique.
170170

171-
Dans cet exemple, `findDOMNode` n'est plus utilisé. Par contre, `inputRef = createRef(null)` est défini comme champ d'instance de la classe. Pour lire le nœud du DOM à partir de celui-ci, vous pouvez utiliser `this.inputRef.current`. Pour le rattacher au JSX, vous faites le rendu `<input ref={this.inputRef} />`. Cela connecte le code utilisant le nœud DOM à son JSX :
171+
Dans cet exemple, `findDOMNode` n'est plus utilisé. On utilise plutôt `inputRef = createRef(null)` pour définir un champ d'instance. Pour y lire le nœud DOM, vous pouvez utiliser `this.inputRef.current`. Pour le rattacher au JSX, vous mettez dans votre rendu `<input ref={this.inputRef} />`. Ça connecte le code utilisant le nœud DOM à son JSX :
172172

173173
<Sandpack>
174174

@@ -181,7 +181,7 @@ export default function App() {
181181
return (
182182
<>
183183
<button onClick={() => setShow(true)}>
184-
Afficher l'exemple
184+
Afficher lexemple
185185
</button>
186186
<hr />
187187
{show && <AutoselectingInput />}
@@ -213,7 +213,7 @@ export default AutoselectingInput;
213213

214214
</Sandpack>
215215

216-
Dans les versions modernes de React sans les composants à base de classe, le code équivalent appelerait [`useRef`](/reference/react/useRef) à la place :
216+
Dans les versions modernes de React sans les composants à base de classes, le code équivalent appellerait plutôt [`useRef`](/reference/react/useRef) :
217217

218218
<Sandpack>
219219

@@ -226,7 +226,7 @@ export default function App() {
226226
return (
227227
<>
228228
<button onClick={() => setShow(true)}>
229-
Voir l'exemple
229+
Voir lexemple
230230
</button>
231231
<hr />
232232
{show && <AutoselectingInput />}
@@ -252,13 +252,13 @@ export default function AutoselectingInput() {
252252

253253
</Sandpack>
254254

255-
[En savoir plus sur la manipulation du DOM avec les refs](/learn/manipulating-the-dom-with-refs).
255+
[Apprenez-en davantage sur la manipulation du DOM avec les refs](/learn/manipulating-the-dom-with-refs).
256256

257257
---
258258

259-
### Lecture d'un nœud DOM d'un composant enfant à partir d'un ref transmis {/*reading-a-child-components-dom-node-from-a-forwarded-ref*/}
259+
### Lire un nœud DOM d'un composant enfant à partir d'un ref transmis {/*reading-a-child-components-dom-node-from-a-forwarded-ref*/}
260260

261-
Dans cet exemple, `findDOMNode(this)` trouve un nœud DOM qui appartient à un autre composant. Le composant `AutoselectingInput` fait le rendu de `MyInput`, qui est votre propre composant qui affiche un navigateur `<input>`.
261+
Dans l'exemple qui suit, `findDOMNode(this)` trouve un nœud DOM qui appartient à un autre composant. Le composant `AutoselectingInput` fait le rendu de `MyInput`, lequel est votre propre composant qui affiche un élément `<input>` natif.
262262

263263
<Sandpack>
264264

@@ -271,7 +271,7 @@ export default function App() {
271271
return (
272272
<>
273273
<button onClick={() => setShow(true)}>
274-
Voir l'exemple
274+
Voir lexemple
275275
</button>
276276
<hr />
277277
{show && <AutoselectingInput />}
@@ -306,12 +306,12 @@ export default function MyInput() {
306306

307307
</Sandpack>
308308

309-
Notez que l'appel de `findDOMNode(this)` à l'intérieur de `AutoselectingInput` vous donne toujours le DOM `<input>` - même si le JSX de ce `<input>` est masqué à l'intérieur du composant `MyInput`. Cela semble pratique dans l'exemple ci-dessus, mais il conduit à un code fragile. Imaginez que vous voulez modifier `MyInput` plutard et l'enrober autour d'un `<div>`. Cela ne respectera pas le code de `AutoselectingInput` (qui attend de trouver un `<input>`).
309+
Notez que l'appel de `findDOMNode(this)` à l'intérieur de `AutoselectingInput` vous donne toujours le nœud DOM `<input>` — même si le JSX de ce `<input>` est masqué à l'intérieur du composant `MyInput`. Ça peut sembler pratique dans l'exemple ci-dessus, mais ce code est fragile. Imaginez que vous vouliez modifier `MyInput` plus tard et l'enrober dans une `<div>`. Ça fera planter le code de `AutoselectingInput` (qui s'attend à trouver un `<input>`).
310310

311-
Pour remplacer `findDOMNode` dans cet exemple, les deux composants doivent être coordonnés :
311+
Pour remplacer `findDOMNode` dans cet exemple, les deux composants doivent se coordonner :
312312

313-
1. `AutoSelectingInput` doit déclarer un ref, comme dans [l'exemple précédent](#reading-components-own-dom-node-from-a-ref), et le founir à `<MyInput>`.
314-
2. `MyInput` doit être déclaré avec [`forwardRef`](/reference/react/forwardRef) pour prendre ce ref et le transmettre au nœud `<input>`.
313+
1. `AutoSelectingInput` doit déclarer une ref, comme dans [l'exemple précédent](#reading-components-own-dom-node-from-a-ref), et la fournir à `<MyInput>`.
314+
2. `MyInput` doit être déclaré avec [`forwardRef`](/reference/react/forwardRef) pour prendre cette ref et la transmettre au nœud `<input>`.
315315

316316
C'est ce que fait cette version, qui n'a donc plus besoin de `findDOMNode` :
317317

@@ -326,7 +326,7 @@ export default function App() {
326326
return (
327327
<>
328328
<button onClick={() => setShow(true)}>
329-
Afficher l'exemple
329+
Afficher lexemple
330330
</button>
331331
<hr />
332332
{show && <AutoselectingInput />}
@@ -369,7 +369,7 @@ export default MyInput;
369369

370370
</Sandpack>
371371

372-
Voici à quoi ressemblerait ce code avec les fonctions composants au lieu de classes :
372+
Voici à quoi ressemblerait ce code avec des fonctions composants au lieu de classes :
373373

374374
<Sandpack>
375375

@@ -382,7 +382,7 @@ export default function App() {
382382
return (
383383
<>
384384
<button onClick={() => setShow(true)}>
385-
Afficher l'exemple
385+
Afficher lexemple
386386
</button>
387387
<hr />
388388
{show && <AutoselectingInput />}
@@ -421,16 +421,16 @@ export default MyInput;
421421

422422
---
423423

424-
### Ajout d'un élement `<div>` enrobant {/*adding-a-wrapper-div-element*/}
424+
### Ajouter un élément `<div>` d'enrobage {/*adding-a-wrapper-div-element*/}
425425

426-
Souvent un composant a besoin de connaître la position et la taille de ses enfants. Il est donc tentant de trouver l'enfant avec `findDOMNode(this)`, et utiliser la méthode du DOM comme [`getBoundingClientRect`](https://developer.mozilla.org/fr/docs/Web/API/Element/getBoundingClientRect) pour des mesures.
426+
Il arrive qu'un composant ait besoin de connaître la position et la taille de ses enfants. Il est donc tentant de trouver l'enfant avec `findDOMNode(this)`, puis d'utiliser des méthodes DOM telles que [`getBoundingClientRect`](https://developer.mozilla.org/fr/docs/Web/API/Element/getBoundingClientRect) pour faire des mesures.
427427

428-
Il n'existe actuellement aucun équivalent direct pour ce cas d'utilisation, c'est pourquoi `findDOMNode` est déprécié mais n'a pas encore été retiré complètement de React. En attendant, vous pouvez essayez d'afficher un nœud `<div>` enrobant le contenu comme solution de contournement, et d'obtenir un ref à ce nœud. Cependant, les enveloppes supplémentaires peuvent nuire à la stylisation.
428+
Il n'existe actuellement aucun équivalent direct pour ce cas d'utilisation, c'est pourquoi `findDOMNode` est déprécié mais n'a pas encore été complètement retiré de React. En attendant, vous pouvez essayer d'enrober votre contenu avec un nœud `<div>` comme solution de contournement, puis d'obtenir une ref à ce nœud. Cependant, les enrobages supplémentaires peuvent nuire à l'application des styles.
429429

430430
```js
431431
<div ref={someRef}>
432432
{children}
433433
</div>
434434
```
435435

436-
Cela s'applique également à la focalisation et au défilement vers des enfants arbitraires.
436+
Ça s'applique également à la gestion du focus d'enfants quelconques, ou au défilement vers ces enfants.

0 commit comments

Comments
 (0)