Dropdown

Main component props, option shape, and imperative API.

Main component. Props are a discriminated union on multiple.

Import

import { Dropdown } from 'react-native-silk-dropdown';
import type { DropdownOption, DropdownRef } from 'react-native-silk-dropdown';

Core props

PropTypeDefaultNotes
dataDropdownOption[]—Supports labelField / valueField
value / onChangeT | null or T[]—Discriminated by multiple
presentation'popover' | 'sheet'popover
animationpreset or configscale / slideSee Animation guide
searchablebooleanfalseOptional onSearch, filter
keyboardShouldPersistTapsboolean | 'always' | 'never' | 'handled'handledPassed to the options list; use always if taps still dismiss the keyboard first
multiplebooleanfalseChips in the trigger
maxSelectednumber—Multi-select only
clearablebooleanfalse
closeOnSelectbooleanvariestrue for popover single; false for sheet / multi
preferredPlacement'top' | 'bottom'bottomPopover only
sheetMaxHeightRationumber—Sheet max height as window ratio
stylesDropdownStyles—Slot style overrides
disabled / loadingbooleanfalse
onOpen / onClose() => void—
refDropdownRef—open, close, clear

Option shape

type DropdownOption<T> = {
  label: string;
  value: T;
  disabled?: boolean;
  icon?: ReactNode;
  group?: string;
  [key: string]: unknown;
};

Imperative API

const ref = useRef<DropdownRef>(null);

<Dropdown ref={ref} ... />

ref.current?.open();
ref.current?.close();
ref.current?.clear();