Simple and lightweight multiple selection dropdown component with checkboxes, search and select-all
npm install react-multi-select-componentSimple and lightweight multiple selection dropdown component with checkboxes, search and select-all




- 🕶 Zero Dependency
- 🍃 Lightweight (<5KB)
- 💅 Themeable
- ✌ Written w/ TypeScript
``bash`
npm i react-multi-select-component # npm
yarn add react-multi-select-component # yarn
`tsx
import React, { useState } from "react";
import { MultiSelect } from "react-multi-select-component";
const options = [
{ label: "Grapes 🍇", value: "grapes" },
{ label: "Mango 🥭", value: "mango" },
{ label: "Strawberry 🍓", value: "strawberry", disabled: true },
];
const Example = () => {
const [selected, setSelected] = useState([]);
return (
{JSON.stringify(selected)}export default Example;
`
More examples can be found here ↗
| Prop | Description | Type | Default |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------- |
| labelledBy | value for aria-labelledby | string | |options
| | options for dropdown | [{label, value, disabled}] | |value
| | pre-selected rows | [{label, value}] | [] |hasSelectAll
| | toggle 'Select All' option | boolean | true |isLoading
| | show spinner on select | boolean | false |shouldToggleOnHover
| | toggle dropdown on hover option | boolean | false |overrideStrings
| | localization ↗ | object | |onChange
| | onChange callback | function | |disabled
| | disable dropdown | boolean | false |disableSearch
| | hide search textbox | boolean | false |filterOptions
| | custom filter options (async supported) ↗ | function | Fuzzy Search |className
| | class name for parent component | string | multi-select |valueRenderer
| | custom dropdown header ↗ | function | |ItemRenderer
| | custom dropdown option ↗ | function | |ClearIcon
| | Custom Clear Icon for Search | ReactNode | |ArrowRenderer
| | Custom Arrow Icon for Dropdown | ReactNode | |debounceDuration
| | debounce duration for Search | number | 300 |ClearSelectedIcon
| | Custom Clear Icon for Selected Items (Hint: Pass null to prevent it from rendering completely) | ReactNode | |isCreatable
| | Allows user to create unavailable option(s) example ↗ | boolean | false |onCreateOption
| | allows to override newly created option example ↗ | function | |closeOnChangedValue
| | automatically closes dropdown when its value is changed | boolean | false` |
For every release changelog/migration-guide will be available in releases
- This project gets inspiration and several pieces of logical code from react-multiple-select
- TypeScript
MIT © harshzalavadiya