При сравнении сохраненных значений и значений, вводимых пользователем, рекомендуется максимально приблизить их к одному уровню. Это означает, что мы можем запустить поиск пользователя и значение элемента через несколько нормализаторов. Взгляните на следующий измененный код:
const searchFilter = this.state.details.filter(
(data) => {
if (this.state.searchStr == null) return true;
else if (
data.name.toLowerCase().trim().includes(this.state.searchStr.trim().toLowerCase()) ||
data.title.toLowerCase().trim().includes(this.state.searchStr.trim().toLowerCase())
) {
return data;
}
}
);
Добавлены следующие функции:
.toLowerCase()
.trim()
Они нормализуют как ввод поиска, так и data.name и data. заголовок будет искать в нижнем регистре, а функция обрезки удаляет все пробелы для облегчения сравнения.