CheckPicker
Used for multiple data selection, support grouping.
Import
import { CheckPicker } from 'rsuite';
// or
import CheckPicker from 'rsuite/CheckPicker';Examples
Basic
With a label
Appearance
Size
Sticky
Set the sticky property to put the selected in the options to the top.
Block
Loading state
When the picker is loading, a spinner is displayed to indicate the loading state. Clicking a loading picker won't open its options menu.
Group
Placement
Tip: When set to
auto*, try to scroll the page, or change the browser size, it will automatically appear in the right place.
Custom options
Disabled and read only
Disabled Search
Extra footer
Customize a select all function.
Async
Container and prevent overflow
Controlled
Virtualize Long Lists
Accessibility
Learn more in Accessibility.
Props
<CheckPicker>
| Property | Type(Default) |
Description |
|---|---|---|
| appearance | 'default' | 'subtle' ('default') |
Set picker appearence |
| block | boolean | Blocking an entire row |
| classPrefix | string ('picker') |
The prefix of the component CSS class |
| cleanable | boolean (true) |
Whether the selected value can be cleared |
| container | HTMLElement | (() => HTMLElement) | Sets the rendering container |
| countable | boolean (true) |
Whether display selected items count |
| data * | ItemDataType[] | The data of component |
| defaultValue | ValueType | Default values of the selected items |
| disabled | boolean | Whether disabled component |
| disabledItemValues | ValueType | Disable item by value |
| groupBy | string | Set group condition key in data |
| label | ReactNode | A label displayed at the beginning of toggle button |
| labelKey | string ('label') |
Set label key in data |
| listProps | ListProps | Properties of virtualized lists |
| loading | boolean (false) |
Whether to display a loading state indicator |
| locale | PickerLocaleType | Locale text |
| menuMaxHeight | number (320) |
The max height of Dropdown |
| menuClassName | string | A css class to apply to the Menu DOM node. |
| menuStyle | CSSProperties | A style to apply to the Menu DOM node. |
| onChange | (value: ValueType, event) => void | Callback fired when value change |
| onClean | (event:SyntheticEvent) => void | Callback fired when value clean |
| onClose | () => void | Callback fired when close component |
| onEnter | () => void | Callback fired before the overlay transitions in |
| onEntered | () => void | Callback fired after the overlay finishes transitioning in |
| onEntering | () => void | Callback fired as the overlay begins to transition in |
| onExit | () => void | Callback fired right before the overlay transitions out |
| onExited | () => void | Callback fired after the overlay finishes transitioning out |
| onExiting | () => void | Callback fired as the overlay begins to transition out |
| onGroupTitleClick | (event) => void | Callback fired when click the group title |
| onOpen | () => void | Callback fired when open component |
| onSearch | (searchKeyword:string, event) => void | Callback fired when search |
| onSelect | (value: ValueType, item: ItemDataType , event) => void | Callback fired when item is selected |
| open | boolean | Whether open the component |
| placeholder | ReactNode ('Select') |
Setting placeholders |
| placement | Placement('bottomStart') |
The placement of component |
| preventOverflow | boolean | Prevent floating element overflow |
| renderExtraFooter | () => ReactNode | Custom render extra footer |
| renderMenu | (menu:ReactNode) => ReactNode | Customizing the Rendering Menu list |
| renderMenuGroup | (groupTitle:ReactNode, item:ItemDataType) => ReactNode | Custom render menu group |
| renderMenuItem | (label:ReactNode, item: ItemDataType) => ReactNode | Custom render menu items |
| renderValue | (value: ValueType, items: ItemDataType[], selectedElement:ReactNode) => ReactNode | Custom render selected items |
| searchBy | (keyword: string, label: ReactNode, item: ItemDataType) => boolean | Custom search rules |
| searchable | boolean (true) |
Whether dispaly search input box |
| size | 'lg' | 'md' | 'sm' | 'xs' ('md') |
A picker can have different sizes |
| sort | (isGroup: boolean) => (a: any, b: any) => number | Sort options |
| sticky | boolean | Top the selected option in the options |
| toggleAs | ElementType ('a') |
You can use a custom element for this component |
| value | ValueType | Specifies the values of the selected items (Controlled) |
| valueKey | string ('value') |
Set value key in data |
| virtualized | boolean | Whether using Virtualized List |
| caretAs | ElementType | Custom component for the caret icon |
ts:ItemDataType
interface ItemDataType {
/** The value of the option corresponds to the `valueKey` in the data. **/
value: string;
/** The content displayed by the option corresponds to the `labelKey` in the data. **/
label: ReactNode;
/**
* The data of the child option corresponds to the `childrenKey` in the data.
* Properties owned by tree structure components, such as TreePicker, Cascader.
*/
children?: ItemDataType[];
/**
* Properties of grouping functional components, such as CheckPicker, InputPicker
*/
groupBy?: string;
/**
* The children under the current node are loading.
* Used for components that have cascading relationships and lazy loading of children. E.g. Cascader, MultiCascader
*/
loading?: boolean;
}
ts:Placement
type Placement =
| 'bottomStart'
| 'bottomEnd'
| 'topStart'
| 'topEnd'
| 'leftStart'
| 'leftEnd'
| 'rightStart'
| 'rightEnd'
| 'auto'
| 'autoVerticalStart'
| 'autoVerticalEnd'
| 'autoHorizontalStart'
| 'autoHorizontalEnd';
ts:ListProps
interface ListProps {
/**
* Size of a item in the direction being windowed.
*/
itemSize?: number | ((index: number) => number);
/**
* Scroll offset for initial render.
*/
initialScrollOffset?: number;
/**
* Called when the items rendered by the list change.
*/
onItemsRendered?: (props: ListOnItemsRenderedProps) => void;
/**
* Called when the list scroll positions changes, as a result of user scrolling or scroll-to method calls.
*/
onScroll?: (props: ListOnScrollProps) => void;
}
ts:ValueType
type ValueType = (string | number)[];