useId |
Utilise un identificateur |
|---|---|
| React | |
Syntaxe
| const id = useId() |
Description
useId est un crochet React permettant de générer des identifiants uniques pouvant être transmis aux attributs d'accessibilité.
Référence
| useId() |
Appelez useId au niveau supérieur de votre composante pour générer un ID unique :
- import { useId } from 'react';
-
- function PasswordField() {
- const passwordHintId = useId();
- // ...
Paramètres
useId ne prend aucun paramètre.
Renvois
useId renvoie une chaîne d'identifiant unique associée à cet appel useId dans cette composante.
Avertissements
useId est un crochet ; vous ne pouvez donc l'appeler qu'au niveau supérieur de votre composant ou de vos propres crochets. Vous ne pouvez pas l'appeler dans des boucles ou des conditions. Si nécessaire, extrayez un nouveau composant et déplacez-y l'état.
useId ne doit pas être utilisé pour générer des clefs dans une liste. Les clefs doivent être générées à partir de vos données.
useId ne peut actuellement pas être utilisé dans les composants serveur désynchronisées.
Utilisation
Piège
N'appelez pas useId pour générer des clefs dans une liste. Les clefs doivent être générées à partir de vos données.
Génération d'identifiants uniques pour les attributs d'accessibilité.
Appelez useId au niveau supérieur de votre composant pour générer un identifiant unique :
- import { useId } from 'react';
-
- function PasswordField() {
- const passwordHintId = useId();
- // ...
Vous pouvez ensuite transmettre l'ID généré à différents attributs :
Prenons un exemple pour comprendre son utilité.
Les attributs d'accessibilité HTML comme aria-describedby permettent de spécifier que deux balises sont liées. Par exemple, vous pouvez spécifier qu'un élément (comme une entrée) est décrit par un autre élément (comme un paragraphe).
En HTML standard, cela se présente ainsi :
Cependant, coder en dur des identifiants comme celui-ci n'est pas une bonne pratique en React. Une composante peut être affiché plusieurs fois sur la page, mais les identifiants doivent être uniques ! Au lieu de coder en dur un identifiant, générez-en un unique avec useId :
Désormais, même si PasswordField apparaît plusieurs fois à l'écran, les identifiants générés n'entreront pas en conflit.