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
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.
30
30
31
31
```js
32
32
import { findDOMNode } from'react-dom';
33
33
34
34
constdomNode=findDOMNode(componentInstance);
35
35
```
36
36
37
-
[Voir les exemples ci-dessous](#usage).
37
+
[Voir d'autres exemples ci-dessous](#usage).
38
38
39
39
#### Paramètres {/*parameters*/}
40
40
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.
42
42
43
43
44
44
#### Valeur renvoyée {/*returns*/}
45
45
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.
47
47
48
48
#### Limitations {/*caveats*/}
49
49
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 nonvide.
51
51
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.
53
53
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.
55
55
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.
57
57
58
58
---
59
59
60
60
## Utilisation {/*usage*/}
61
61
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*/}
63
63
64
64
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é.
66
66
67
67
```js {3}
68
68
classAutoselectingInputextendsComponent {
@@ -77,7 +77,7 @@ class AutoselectingInput extends Component {
77
77
}
78
78
```
79
79
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:
### 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*/}
127
127
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 exempled'enrober cet`<input />` dans une`<div>`:
129
129
130
130
<Sandpack>
131
131
@@ -138,7 +138,7 @@ export default function App() {
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.
170
170
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:
172
172
173
173
<Sandpack>
174
174
@@ -181,7 +181,7 @@ export default function App() {
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):
217
217
218
218
<Sandpack>
219
219
@@ -226,7 +226,7 @@ export default function App() {
226
226
return (
227
227
<>
228
228
<button onClick={() =>setShow(true)}>
229
-
Voir l'exemple
229
+
Voir l’exemple
230
230
</button>
231
231
<hr />
232
232
{show &&<AutoselectingInput />}
@@ -252,13 +252,13 @@ export default function AutoselectingInput() {
252
252
253
253
</Sandpack>
254
254
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).
256
256
257
257
---
258
258
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*/}
260
260
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.
262
262
263
263
<Sandpack>
264
264
@@ -271,7 +271,7 @@ export default function App() {
271
271
return (
272
272
<>
273
273
<button onClick={() =>setShow(true)}>
274
-
Voir l'exemple
274
+
Voir l’exemple
275
275
</button>
276
276
<hr />
277
277
{show &&<AutoselectingInput />}
@@ -306,12 +306,12 @@ export default function MyInput() {
306
306
307
307
</Sandpack>
308
308
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>`).
310
310
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 :
312
312
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>`.
315
315
316
316
C'est ce que fait cette version, qui n'a donc plus besoin de `findDOMNode` :
317
317
@@ -326,7 +326,7 @@ export default function App() {
326
326
return (
327
327
<>
328
328
<button onClick={() =>setShow(true)}>
329
-
Afficher l'exemple
329
+
Afficher l’exemple
330
330
</button>
331
331
<hr />
332
332
{show &&<AutoselectingInput />}
@@ -369,7 +369,7 @@ export default MyInput;
369
369
370
370
</Sandpack>
371
371
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 :
373
373
374
374
<Sandpack>
375
375
@@ -382,7 +382,7 @@ export default function App() {
382
382
return (
383
383
<>
384
384
<button onClick={() =>setShow(true)}>
385
-
Afficher l'exemple
385
+
Afficher l’exemple
386
386
</button>
387
387
<hr />
388
388
{show &&<AutoselectingInput />}
@@ -421,16 +421,16 @@ export default MyInput;
421
421
422
422
---
423
423
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*/}
425
425
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.
427
427
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.
429
429
430
430
```js
431
431
<div ref={someRef}>
432
432
{children}
433
433
</div>
434
434
```
435
435
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