Liste déroulante React Native : avec ou sans librairie

Guide de la liste déroulante React Native

Liste déroulante React Native : la créer avec Modal + FlatList | We.Inc

Créez une liste déroulante React Native sans librairie avec Modal et FlatList, ou utilisez le Picker communautaire. Code à copier, aperçu web en direct et tableau des props.

React Native ne fournit aucune liste déroulante ni aucun select parmi ses composants de base. Soit vous en construisez une à partir d'un déclencheur Pressable, d'un Modal et d'une FlatList d'options, soit vous installez le paquet communautaire @react-native-picker/picker, qui enveloppe le sélecteur natif sur Android et iOS. Construisez la vôtre quand vous avez besoin d'une recherche, de lignes personnalisées ou d'un rendu identique sur toutes les plateformes.

Trois façons d'afficher une liste de choix

L'aperçu ci-dessous exécute la même logique que le code React Native plus bas, dessinée avec des éléments web pour que vous puissiez l'essayer ici : ouvrez la liste, filtrez-la, choisissez une ligne et fermez-la avec Échap. Copiez ensuite le composant et remplacez les balises web par View, Text, Pressable, Modal et FlatList.

Questions fréquentes

React Native a-t-il une liste déroulante intégrée ?

Non. La page des composants de base liste Button et Switch parmi les contrôles d'interface, et rien pour les select. Pour un select natif prêt à l'emploi, installez le paquet communautaire @react-native-picker/picker.

Comment donner au Picker l'apparence d'une liste déroulante sur Android ?

Définissez mode="dropdown" sur le Picker. Cette prop existe uniquement sur Android ; la valeur par défaut y est "dialog", qui ouvre une liste modale. Sur iOS, le composant affiche plutôt la roue native.

Pourquoi un appui sur une option ferme-t-il seulement le clavier ?

Une liste défilante règle keyboardShouldPersistTaps sur "never" par défaut : le premier appui hors du champ actif ferme le clavier et la ligne ne le reçoit jamais. Réglez la prop sur "handled" dans la FlatList.

Puis-je ajouter une recherche à une liste déroulante React Native ?

Oui, avec la version personnalisée. Gardez une chaîne de recherche dans le state, placez un TextInput en haut du Modal et passez le tableau filtré à la prop data de la FlatList.

Quand construire la vôtre

Accessibilité d'un select personnalisé

Les props utiles pour une liste déroulante

Props de base utilisées par la liste déroulante personnalisée

Code de liste déroulante à copier

Liste déroulante avec Pressable, Modal et FlatList

Aucune dépendance. Le parent détient la valeur ; le composant ne fait que signaler le choix via onChange.

Le Picker communautaire

Installez-le avec npm install @react-native-picker/picker. onValueChange reçoit la valeur de l'élément et sa position.

Aperçu de la liste déroulante

Équivalent web du composant React Native : la même logique d'ouverture, de filtre et de sélection, dessinée en HTML pour fonctionner ici.

Ville

Choisir...

Filtrer les villes

Aucune ville ne correspond à ce filtre.

Fermer la liste

Valeur sélectionnée : {v}

Rien n'est encore sélectionné.

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site