Implement custom search with custom label using react-select
Today, we will show you how to implement custom search with custom label using react-select. In the past article, we have added an icon in the react-select dropdown. But when you search for the label then you canโt search the item. So we have to implement the custom search using different key.
Demo Application
Output - Implement custom search with custom label using react-select - Clue Mediator
Custom search with custom label using react-select
1. Add custom label in react-select dropdown
Refer to the following article to implement react-select dropdown in React Application.
How to add an icon in the react-select dropdown
2. Implement custom search
To implement custom search, we have to use `filterOption` property of the react-select React Package">package where you can write your custom logic to filter the dropdown items.
function App() {
...
...
const filterOption = (option, inputValue) => {
return option.data.text.toLowerCase().includes(inputValue.toLowerCase());
}
return (
<select ...="" filteroption={filterOption}>
);
}
3. Output
Let's combine all the code together and see how it looks.App.js
import React, { useState } from 'react';
import Select from 'react-select';function App() {
const data = [
{
value: 1,
text: 'Up Arrow',
icon:
},
{
value: 2,
text: 'Down Arrow',
icon:
},
{
value: 3,
text: 'Left Arrow',
icon:
},
{
value: 4,
text: 'Right Arrow',
icon:
}
]; const [selectedOption, setSelectedOption] = useState(null); // handle onChange event of the dropdown
const handleChange = e => {
setSelectedOption(e);
} // handle custom filter
const filterOption = (option, inputValue) => {
return option.data.text.toLowerCase().includes(inputValue.toLowerCase());
} return (
Custom search in react-select dropdown - Clue Mediator </select> (
<div style={{ display: 'flex', alignitems: 'center' }}>
{e.icon}
<span 5="" style={{ marginleft: }}>{e.text}</span>
</div>
)}
filterOption={filterOption}
/>
{selectedOption && <div style={{ margintop: 20, lineheight: '25px' }}>
<b>Selected Option:</b> {selectedOption.value}
</div>}
);
}
export default App;
Run the project and check the output in the browser.
I hope you find this article helpful.
Thank you for reading. Happy Coding..!! ๐