React Native dropdown: z biblioteką i bez niej

Poradnik React Native dropdown

React Native dropdown: zbuduj go z Modal + FlatList | We.Inc

Zbuduj dropdown w React Native bez biblioteki, z Modal i FlatList, albo użyj społecznościowego Pickera. Kod do skopiowania, podgląd na żywo w przeglądarce i tabela propsów.

React Native nie ma na liście podstawowych komponentów ani dropdownu, ani selecta. Możesz zbudować go sam z przycisku Pressable, komponentu Modal i FlatList z opcjami albo zainstalować społecznościowy pakiet @react-native-picker/picker, który opakowuje natywny picker na Androidzie i iOS. Buduj własny, gdy potrzebujesz wyszukiwania, niestandardowych wierszy albo jednego wyglądu na każdej platformie.

Trzy sposoby na pokazanie listy wyboru

Poniższy podgląd działa na tej samej logice co kod React Native niżej, ale jest narysowany elementami webowymi, abyś mógł go wypróbować tutaj: otwórz listę, przefiltruj ją, wybierz wiersz i zamknij klawiszem Escape. Potem skopiuj komponent i zamień znaczniki webowe na View, Text, Pressable, Modal i FlatList.

Najczęściej zadawane pytania

Czy React Native ma wbudowany dropdown?

Nie. Strona podstawowych komponentów wymienia wśród kontrolek interfejsu Button i Switch, a dla selectów nic. Jeśli chcesz gotowy natywny select, zainstaluj społecznościowy pakiet @react-native-picker/picker.

Jak sprawić, by Picker na Androidzie wyglądał jak dropdown?

Ustaw mode="dropdown" na komponencie Picker. Ten props działa tylko na Androidzie, a domyślną wartością jest tam "dialog", która otwiera listę w oknie modalnym. Na iOS komponent pokazuje zamiast tego natywne kółko wyboru.

Dlaczego dotknięcie opcji tylko zamyka klawiaturę?

Przewijana lista domyślnie ma keyboardShouldPersistTaps ustawione na "never", więc pierwsze dotknięcie poza aktywnym polem zamyka klawiaturę, a wiersz go nie dostaje. Ustaw ten props na "handled" w FlatList.

Czy mogę dodać wyszukiwanie do dropdownu w React Native?

Tak, we własnej wersji. Trzymaj zapytanie w stanie, umieść TextInput na górze komponentu Modal i przekaż przefiltrowaną tablicę do propsa data w FlatList.

Kiedy budować własny

Dostępność własnego selecta

Propsy istotne dla dropdownu

Podstawowe propsy używane przez własny dropdown

Kod dropdownu do skopiowania

Dropdown z Pressable, Modal i FlatList

Bez zależności. Wartość należy do rodzica, a komponent tylko zgłasza wybór przez onChange.

Społecznościowy Picker

Instalacja przez npm install @react-native-picker/picker. onValueChange otrzymuje wartość elementu i jego pozycję.

Podgląd dropdownu

Webowy zamiennik komponentu React Native: ta sama logika otwierania, filtrowania i wybierania, narysowana w HTML, aby działała tutaj.

Miasto

Wybierz...

Filtruj miasta

Żadne miasto nie pasuje do tego filtra.

Zamknij listę

Wybrana wartość: {v}

Jeszcze nic nie wybrano.

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony