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
*`element` : l'argument `element` doit être un élément React valide. Il peut par exemple s'agir d'un nœud JSX tel que `<Something />`, du résultat d'un appel à [`createElement`](/reference/react/createElement)ou du résultat d'un autre appel à `cloneElement`.
50
+
*`element` : l'argument `element` doit être un élément React valide. Il peut par exemple s'agir d'un nœud JSX tel que `<Something />` ou du résultat d'un appel à [`createElement`](/reference/react/createElement)voire d'un autre appel à `cloneElement`.
51
51
52
-
*`props` : l'argument `props` doit être soit un objet, soit `null`. Si vous passez `null`, l'élément cloné conservera toutes les `element.props` d'origine. Dans le cas contraire, pour chaque prop de l'objet `props`, l'élément renvoyé « favorisera » la valeur issue de `props` plutôt que celle issue d'`element.props`. Le reste des props seront rempleis à partir des `element.props` d'origine. Si vous passez `props.key` ou `props.ref`, elles remplaceront également celles d'origine.
52
+
*`props` : l'argument `props` doit être soit un objet, soit `null`. Si vous passez `null`, l'élément cloné conservera toutes les `element.props` d'origine. Dans le cas contraire, pour chaque prop de l'objet `props`, l'élément renvoyé « favorisera » la valeur issue de `props` plutôt que celle issue d'`element.props`. Le reste des props seront remplies à partir des `element.props` d'origine. Si vous passez `props.key` ou `props.ref`, elles remplaceront également celles d'origine.
53
53
54
-
*`...children`**optionels** : un nombre quelconque de nœuds enfants. Il peut s'agir de n'importe quel nœuds React, y compris des éléments React, des chaînes de caractères, des nombres, des [portails](/reference/react-dom/createPortal), des nœuds vides (`null`, `undefined`, `true` et `false`) et des tableaux de nœuds React. Si vous ne passez aucun argument `...children`, les `element.props.children` d'origine seront préservés.
54
+
*`...children`**optionels** : un nombre quelconque de nœuds enfants. Il peut s'agir de n'importe quels nœuds React, y compris des éléments React, des chaînes de caractères, des nombres, des [portails](/reference/react-dom/createPortal), des nœuds vides (`null`, `undefined`, `true` et `false`) et des tableaux de nœuds React. Si vous ne passez aucun argument `...children`, les `element.props.children` d'origine seront préservés.
55
55
56
56
#### Valeur renvoyée {/*returns*/}
57
57
58
-
`cloneElement` renvoie un objet d'élément React avec quelques propriétés :
58
+
`cloneElement` renvoie un objet descripteur d'élément React avec quelques propriétés :
59
59
60
60
*`type` : identique à `element.type`.
61
-
*`props` : le résultat d'une fusion superficielle de `element.props` avec les `props` prioritaires que vous auriez passées.
61
+
*`props` : le résultat d'une fusion superficielle de `element.props` avec les `props` prioritaires que vous auriez éventuellement passées.
62
62
*`ref` : la `element.ref` d'origine, à moins qu'elle n'ait été remplacée par `props.ref`.
63
63
*`key` : la `element.key` d'origine, à moins qu'elle n'ait été remplacée par `props.key`.
64
64
@@ -78,7 +78,7 @@ En général, vous renverrez l'élément depuis votre composant, ou en ferez l'e
78
78
79
79
### Surcharger les props d'un élément {/*overriding-props-of-an-element*/}
80
80
81
-
Pour surcharger les props d'un <CodeStepstep={1}>élément React</CodeStep>, passez-le à `cloneElement` avec les <CodeStepstep={2}>props que vous voulez remplacer</CodeStep> :
81
+
Pour surcharger les props d'un <CodeStepstep={1}>élément React</CodeStep>, passez-le à `cloneElement`, conjointement aux <CodeStepstep={2}>props que vous souhaitez remplacer</CodeStep> :
**Déroulons un exemple afin de comprendre en quoi c'est utile.**
96
96
97
-
Imaginons qu'un composant `List` affiche ses [`children`](/learn/passing-props-to-a-component#passing-jsx-as-children) comme une liste de ligne sélectionnables avec un bouton « Suivant » qui modifie la ligne sélectionnée. Le composant `List` doit pouvoir afficher la `Row` sélectionnée d'une façon différente, il clone donc chaque enfant `<Row>` qu'il reçoit, et y ajoute une prop supplémentaire `isHighlighted: true` ou `isHighlighted: false` :
97
+
Imaginons qu'un composant `List` affiche ses [`children`](/learn/passing-props-to-a-component#passing-jsx-as-children) comme une liste de lignes sélectionnables avec un bouton « Suivant » qui modifie la ligne sélectionnée. Le composant `List` doit pouvoir afficher la `Row` sélectionnée d'une façon différente, il clone donc chaque enfant `<Row>` qu'il reçoit, et y ajoute une prop supplémentaire `isHighlighted: true` ou `isHighlighted: false` :
98
98
99
99
```js {6-8}
100
100
exportdefaultfunctionList({ children }) {
@@ -236,7 +236,7 @@ En résumé, la `List` a cloné les éléments `<Row />` qu'elle a reçus et leu
236
236
237
237
<Pitfall>
238
238
239
-
Le clonage des nœuds enfants complexifie le flux de données dans votre appli. Essayez plutôt une des [alternatives](#alternatives).
239
+
Le clonage des nœuds enfants complexifie le flux de données dans votre appli : vous devriez donc plutôt essayer une des [alternatives](#alternatives).
La prop `renderItem` est appelée « prop de rendu » parce que c'est une prop indiquant comment faire le rendu de quelque chose. Vous pouvez par exemple passer une implémentation de `renderItem` qui produit une `<Row>` avec la valeur `isHighlighted` reçue :
262
+
La prop `renderItem` est appelée « prop de rendu » parce que c'est une prop indiquant *comment* faire le rendu de quelque chose. Vous pouvez par exemple passer une implémentation de `renderItem` qui produit une `<Row>` avec la valeur `isHighlighted` reçue :
263
263
264
264
```js {3,7}
265
265
<List
@@ -403,7 +403,7 @@ Vous pourriez par exemple appeler [`createContext`](/reference/react/createConte
403
403
exportconstHighlightContext=createContext(false);
404
404
```
405
405
406
-
Votre composant `List`puet enrober chaque élément qu'il affiche dans un fournisseur de `HighlightContext` :
406
+
Votre composant `List`peut enrober chaque élément qu'il affiche dans un fournisseur de `HighlightContext` :
0 commit comments