TagPicker
Multi-select by tag and support new options
Import
import { TagPicker } from 'rsuite';
// or
import TagPicker from 'rsuite/TagPicker';
Examples
Default
Size
Block
Group
Creatable
Custom
Disabled and read only
Async
interface DataItemType {
/** 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?: DataItemType[];
/**
* 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;
}
type Placement =
| 'bottomStart'
| 'bottomEnd'
| 'topStart'
| 'topEnd'
| 'leftStart'
| 'leftEnd'
| 'rightStart'
| 'rightEnd'
| 'auto'
| 'autoVerticalStart'
| 'autoVerticalEnd'
| 'autoHorizontalStart'
| 'autoHorizontalEnd';
<TagPicker>
Property | Type(Default) |
Description |
---|---|---|
cacheData | DataItemType[] | Option to cache value when searching asynchronously |
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 |
creatable | boolean | Settings can create new options |
data * | DataItemType[] | The data of component |
defaultValue | string[] | Default values of the selected items |
disabled | boolean | Whether disabled component |
disabledItemValues | string[] | Disable item by value |
groupBy | string | Set group condition key in data |
labelKey | string ('label') |
Set label key in data |
listProps | ListProps | List-related properties in react-virtualized |
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:string[], event) => void | Callback fired when value change |
onClean | (event) => void | Callback fired when value clean |
onClose | () => void | Callback fired when close component |
onCreate | (value: string[], item: ItemDataType, event) => void | Callback fired when a new option is created |
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:string[], item: DataItemType , event) => void | Callback fired when item is selected |
placeholder | ReactNode ('Select') |
Setting placeholders |
placement | Placement ('bottomStart') |
The placement of component |
preventOverflow | boolean | Prevent floating element overflow |
renderExtraFooter | () => ReactNode | Custom render extra footer |
renderMenuGroup | (groupTitle:ReactNode, item:DataItemType) => ReactNode | Custom render menu group |
renderMenuItem | (label:ReactNode, item:DataItemType) => ReactNode | Custom render menu items |
renderValue | (value: string[], items:DataItemType[], tags: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 | enum: 'lg'|'md'|'sm'|'xs' ('md') |
A picker can have different sizes |
sort | (isGroup: boolean) => (a: any, b: any) => number | Sort options |
tagProps | TagProps | Set the props of the Tag |
toggleAs | ElementType ('a') |
You can use a custom element for this component |
trigger | 'Enter' | 'Space' | 'Comma' ('Enter') |
Set the trigger for creating tags |
value | string[] | Specifies the values of the selected items (Controlled) |
valueKey | string ('value') |
Set value key in data |
virtualized | boolean | Whether using Virtualized List |