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
Call`findDOMNode`to find the browser DOM node for a given React [class component](/reference/react/Component)instance.
29
+
Appelez`findDOMNode`pour trouver le nœud DOM le plus proche 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
-
[See more examples below.](#usage)
37
+
[Voir d'autres exemples ci-dessous](#usage).
38
38
39
-
#### Parameters {/*parameters*/}
39
+
#### Paramètres {/*parameters*/}
40
40
41
-
*`componentInstance`: An instance of the [`Component`](/reference/react/Component) subclass. For example, `this`inside a class component.
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
-
#### Returns {/*returns*/}
44
+
#### Valeur renvoyée {/*returns*/}
45
45
46
-
`findDOMNode`returns the first closest browser DOM node within the given`componentInstance`. When a component renders to `null`, or renders `false`, `findDOMNode`returns`null`. When a component renders to a string, `findDOMNode`returns a text DOM node containing that value.
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
-
#### Caveats {/*caveats*/}
48
+
#### Limitations {/*caveats*/}
49
49
50
-
*A component may return an array or a [Fragment](/reference/react/Fragment)with multiple children. In that case`findDOMNode`, will return the DOM node corresponding to the first non-empty child.
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.
51
51
52
-
*`findDOMNode`only works on mounted components (that is, components that have been placed in the DOM). If you try to call this on a component that has not been mounted yet (like calling `findDOMNode()`in`render()`on a component that has yet to be created), an exception will be thrown.
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`only returns the result at the time of your call. If a child component renders a different node later, there is no way for you to be notified of this change.
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`accepts a class component instance, so it can't be used with function components.
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
-
## Usage {/*usage*/}
60
+
## Utilisation {/*usage*/}
61
61
62
-
### Finding the root DOM node of a class component {/*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
-
Call `findDOMNode` with a [class component](/reference/react/Component) instance (usually, `this`) to find the DOM node it has rendered.
64
+
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é.
65
66
66
67
```js {3}
67
68
classAutoselectingInputextendsComponent {
@@ -71,12 +72,12 @@ class AutoselectingInput extends Component {
71
72
}
72
73
73
74
render() {
74
-
return<input defaultValue="Hello"/>
75
+
return<input defaultValue="Bonjour"/>
75
76
}
76
77
}
77
78
```
78
79
79
-
Here, the `input`variable will be set to the `<input>` DOM element. This lets you do something with it. For example, when clicking "Show example" below mounts the input, [`input.select()`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select)selects all text in the input:
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 :
80
81
81
82
<Sandpack>
82
83
@@ -89,7 +90,7 @@ export default function App() {
89
90
return (
90
91
<>
91
92
<button onClick={() =>setShow(true)}>
92
-
Show example
93
+
Voir l’exemple
93
94
</button>
94
95
<hr />
95
96
{show &&<AutoselectingInput />}
@@ -109,7 +110,7 @@ class AutoselectingInput extends Component {
### Reading component's own DOM node from a 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*/}
126
127
127
-
Code using `findDOMNode`is fragile because the connection between the JSX node and the code manipulating the corresponding DOM node is not explicit. For example, try wrapping this`<input />`into a`<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>`:
128
129
129
130
<Sandpack>
130
131
@@ -137,7 +138,7 @@ export default function App() {
137
138
return (
138
139
<>
139
140
<button onClick={() =>setShow(true)}>
140
-
Show example
141
+
Voir l’exemple
141
142
</button>
142
143
<hr />
143
144
{show &&<AutoselectingInput />}
@@ -156,7 +157,7 @@ class AutoselectingInput extends Component {
This will break the code because now, `findDOMNode(this)`finds the `<div>`DOM node, but the code expects an`<input>` DOM node. To avoid these kinds of problems, use[`createRef`](/reference/react/createRef)to manage a specific DOM node.
169
+
Ce code plantera parce que désormais, car `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.
169
170
170
-
In this example, `findDOMNode`is no longer used. Instead, `inputRef = createRef(null)`is defined as an instance field on the class. To read the DOM node from it, you can use`this.inputRef.current`. To attach it to the JSX, you render `<input ref={this.inputRef} />`. This connects the code using the DOM node to its 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:
171
172
172
173
<Sandpack>
173
174
@@ -180,7 +181,7 @@ export default function App() {
180
181
return (
181
182
<>
182
183
<button onClick={() =>setShow(true)}>
183
-
Show example
184
+
Afficher l’exemple
184
185
</button>
185
186
<hr />
186
187
{show &&<AutoselectingInput />}
@@ -202,7 +203,7 @@ class AutoselectingInput extends Component {
[Read more about manipulating the DOM with 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).
255
256
256
257
---
257
258
258
-
### Reading a child component's DOM node from a forwarded ref {/*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*/}
259
260
260
-
In this example, `findDOMNode(this)`finds a DOM node that belongs to another component. The `AutoselectingInput`renders `MyInput`, which is your own component that renders a browser`<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.
261
262
262
263
<Sandpack>
263
264
@@ -270,7 +271,7 @@ export default function App() {
Notice that calling `findDOMNode(this)`inside `AutoselectingInput`still gives you the DOM `<input>`--even though the JSX for this`<input>`is hidden inside the `MyInput` component. This seems convenient for the above example, but it leads to fragile code. Imagine that you wanted to edit `MyInput`later and add a wrapper `<div>` around it. This would break the code of`AutoselectingInput` (which expects to find an`<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>`).
309
310
310
-
To replace`findDOMNode`in this example, the two components need to coordinate:
311
+
Pour remplacer`findDOMNode`dans cet exemple, les deux composants doivent se coordonner :
311
312
312
-
1.`AutoSelectingInput`should declare a ref, like [in the earlier example](#reading-components-own-dom-node-from-a-ref), and pass it to`<MyInput>`.
313
-
2.`MyInput`should be declared with[`forwardRef`](/reference/react/forwardRef)to take that ref and forward it down to the `<input>` node.
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>`.
314
315
315
-
This version does that, so it no longer needs `findDOMNode`:
316
+
C'est ce que fait cette version, qui n'a donc plus besoin de `findDOMNode`:
316
317
317
318
<Sandpack>
318
319
@@ -325,7 +326,7 @@ export default function App() {
### Adding a wrapper`<div>`element {/*adding-a-wrapper-div-element*/}
424
+
### Ajouter un élément`<div>`d'enrobage {/*adding-a-wrapper-div-element*/}
424
425
425
-
Sometimes a component needs to know the position and size of its children. This makes it tempting to find the children with `findDOMNode(this)`, and then use DOM methods like[`getBoundingClientRect`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect)for measurements.
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.
426
427
427
-
There is currently no direct equivalent for this use case, which is why `findDOMNode`is deprecated but is not yet removed completely from React. In the meantime, you can try rendering a wrapper `<div>`node around the content as a workaround, and getting a ref to that node. However, extra wrappers can break styling.
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.
428
429
429
430
```js
430
431
<div ref={someRef}>
431
432
{children}
432
433
</div>
433
434
```
434
435
435
-
This also applies to focusing and scrolling to arbitrary children.
436
+
Ça s'applique également à la gestion du focus d'enfants quelconques, ou au défilement vers ces enfants.
0 commit comments