React – How to Create Dynamic Search and Multi-Select Dropdowns with React-Select

In this React tutorial, we will discuss how to implement a dynamic multi select box in React js application.

Dropdowns are very important and useful UI components that enable a user to select a single of multiple values from a set of huge lists. Dropdowns are used for multiple use-cases like selecting options, filtering results, or choosing from a list of items.

In this tutorial, we will use the React-Select npm library to create dynamic search and multi-select dropdowns.

 

Creating a Dynamic Search Dropdown

To create a dynamic search dropdown, we first need to install the React-Select library. You can do this by running the following command in your terminal:

npm install react-select

Next, we need to import the library into our project. In your React component file, add the following import statement:

import Select from 'react-select';

Now, let’s create an array of options that we want to display in our dropdown. For example:

const options = [
  { value: 'apple', label: 'Apple' },
  { value: 'banana', label: 'Banana' },
  { value: 'cherry', label: 'Cherry' },
  { value: 'grape', label: 'Grape' },
  { value: 'orange', label: 'Orange' },
];

Finally, we can use the React-Select component to render our dropdown. Here’s an example:

<Select options={options} />

This will render a basic dropdown with the options we defined. However, we can make this dropdown more dynamic by adding a search bar that allows users to filter the options. To do this, we can add the isSearchable prop to our component:

<Select options={options} isSearchable />

Now, users can search for options by typing in the dropdown.

Creating a Multi-Select Dropdown

To create a multi-select dropdown, we can add the isMulti prop to our component:

<Select options={options} isMulti />

This will allow users to select multiple options from the dropdown. We can also customize the appearance of the selected options by adding a custom component. Here’s an example:

const customOption = ({ data, ...props }) => (
  <components.Option {...props}>
    <input type="checkbox" checked={props.isSelected} onChange={() => null} />
    {data.label}
  </components.Option>
);

<Select options={options} isMulti components={{ Option: customOption }} />

This will render a checkbox next to each option in the dropdown, allowing users to select multiple options.

 

Conclusion

In this tutorial, we learned how to create dynamic search and multi-select dropdowns with React-Select. By adding the isSearchable and isMulti props to our components, we were able to create more interactive and flexible dropdown menus. We also saw how we can customize the appearance of our dropdowns by adding custom components.

Leave a Comment

Your email address will not be published. Required fields are marked *