Во-первых, multi-additional-filter
, кажется, в настоящее время не поддерживается createFilterOptions
.
const filteredOptions = options.filter(option => {
let candidate = (stringify || getOptionLabel)(option);
if (ignoreCase) {
candidate = candidate.toLowerCase();
}
if (ignoreAccents) {
candidate = stripDiacritics(candidate);
}
return matchFrom === "start"
? candidate.indexOf(input) === 0
: candidate.indexOf(input) > -1;
});
Мы видим, что он фактически фильтрует параметры по атрибутам, которые кодируются как принимающие только один для сравнения.
Решение
В качестве обходного пути, если нам не нужен matchFrom: 'start'
, мы можем просто go через него связать две строки. Обратите внимание, что у него есть потенциальные ошибки.
const filterOptions = createFilterOptions({
// matchFrom: 'start',
stringify: (option) => option.title + option.text, // make it one for it
});
Попробуйте онлайн: https://stackblitz.com/edit/gwmqss
Мы также можем написать нашу собственную функцию createFilterOptions
для автозаполнения реквизиты getOptionLabel
, которые могут поддерживать multi-additional-filter
с такими реквизитами, как matchFrom: 'start'
.
Если вы думаю, что это полезная функция, вы также можете начать выпуск.