Таким образом, чтобы добиться вашей функции, я бы использовал реквизит filterOption
.
const filterOption = ({ label, value }, string) => {
if(string === "") return true;
const parsedString = string.split(/[, ]+/);
for (const string of parsedString) {
// Need to check of string is not empty after the split
if (string !== "" && (label.includes(string) || value.includes(string)))
return true;
}
return false;
};
Идея состоит в том, чтобы разделить входное значение пробелом или запятой (в приведенном выше примере я сделал комбинациюиз этих двух вариантов) и применить обычную фильтрацию react-select
, выполняемую для каждого экземпляра.
Живой пример доступен здесь .