Skip to main content
Version: v0.23.1

Comparison

React Native apps usually combine several single-purpose packages for pickers. This page shows how one package with zero native code compares with each category, and when another tool is the better choice.

At a glance​

React Native PickersNative OS pickersΒΉCalendar librariesΒ²Select wrappersΒ³
Wheel picker (any data)βœ…βœ… iOS Β· ⚠️ Android dropdownβŒβœ… (native)
Time pickerβœ…βœ…βŒβŒ
Calendarβœ…βš οΈ OS dialogβœ…βŒ
Date + time in one pickerβœ…βš οΈ iOS only❌❌
Date range selectionβœ… built in❌⚠️ via manual marking❌
Multiple datesβœ…βŒβš οΈ manual❌
Searchable select / multi-selectβœ…βŒβŒβš οΈ varies
Server search (async options)βœ… loadOptions❌❌❌
Segmented control / chipsβœ… HorizontalList⚠️ separate native package❌❌
Emoji pickerβœ…βŒβŒβŒ
Bottom sheetsβœ… built in❌❌❌
Keyboard navigation on the webβœ… arrows, Home/End, Escβ€”βš οΈ varies⚠️ varies
Native look per platform (iOS, Material, web)βœ…βœ…βŒβš οΈ iOS / Android only
One look on every platform, if you want itβœ… design="ios"βŒβœ…βŒ
Full theming + dark modeβœ… tokens + slots⚠️ limitedβœ…βš οΈ limited
Native codeNoneYesUsually noneYes
Extra peer dependenciesNoneβ€”VariesNative picker module

ΒΉ e.g. @react-native-community/datetimepicker, @react-native-picker/picker. Β² e.g. react-native-calendars. Β³ e.g. react-native-picker-select.

Choose React Native Pickers when​

  • you want pickers that look native on iOS, Android and the web and still match your brand, or one design on every platform
  • you need ranges, multiple dates, marked dates or prices in a calendar
  • you need several kinds of pickers and want one API, one theme and one dependency
  • you ship through Expo Go / OTA updates or want to avoid native modules
  • you want sheets without pulling in Reanimated and Gesture Handler

Choose something else when​

  • You must use the OS's own control, for example to get every system accessibility feature or follow each OS update automatically. Our designs follow iOS and Material, but they're drawn in JavaScript. Use @react-native-community/datetimepicker or @react-native-picker/picker.
  • You need an agenda / timeline / week calendar with events laid out by hour. That's a scheduling component, not a picker.
  • You need a full-featured gesture bottom sheet (snap points, scrollable content interplay, detents) for non-picker screens. A dedicated sheet library such as @gorhom/bottom-sheet fits that; our BottomSheet covers simple modal sheets.

Migrating​

See Migration for prop-by-prop guides from the most common packages.