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
+
Appeler`findDOMNode`pour trouver le nœud du navigateur pour une instance React à [composant à 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 les 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 du [`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. 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.
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 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.
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 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.
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 fait plutard le rendu d'un nœud différent, vous n'avez aucun moyen d'être informé 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 être utilisé avec les 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 racine du DOM 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
+
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
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 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
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
+
### Lecture du nœud DOM à 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
+
Le code qui utilise `findDOMNode`est fragile parce que la connection entre le nœud JSXet le code manipulant le nœud du DOMcorrespondant n'est pas explicite. Par exemple, essayez d'enrober ce`<input />`dans un`<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
+
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œudDOMspé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é. 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
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 {
In modern React without class components, the equivalent code would call[`useRef`](/reference/react/useRef)instead:
216
+
Dans les versions modernes de React sans les composants à base de classe, le code équivalent appelerait [`useRef`](/reference/react/useRef) à la place :
216
217
217
218
<Sandpack>
218
219
@@ -225,7 +226,7 @@ export default function App() {
225
226
return (
226
227
<>
227
228
<button onClick={() => setShow(true)}>
228
-
Show example
229
+
Voir l'exemple
229
230
</button>
230
231
<hr />
231
232
{show && <AutoselectingInput />}
@@ -245,19 +246,19 @@ export default function AutoselectingInput() {
[Read more about manipulating the DOM with refs.](/learn/manipulating-the-dom-with-refs)
255
+
[En savoir plus sur la manipulation du DOMavec 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
+
### 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
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 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
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 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
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 être coordonnés :
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 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>`.
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
+
### Ajout d'un élement`<div>`enrobant {/*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
+
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
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é 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
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
+
Cela s'applique également à la focalisation et au défilement vers des enfants arbitraires.
0 commit comments