Я создаю простое приложение React.js и пытаюсь создать поле ввода, которое «фильтрует» результаты из массива данных, контролируя, что отображается на странице в режиме реального времени.
Шагкоторый фильтрует состояние отображения данных, сбой и вместо этого очищает состояние.
У меня есть все подтвержденные, насколько я могу сказать, что они работают правильно в другом месте компонента, за исключением части моего кода, которая обрабатывает это поведение,
Моя функция, которая должна фильтровать и обновлять состояние «FilterStudents» (которое связано с тем, что отображается на странице).
Когда эта функция вызывается страницей, однако, "newList "(переменная в строке 2) пуста, и пока страница не завершается с ошибкой, состояние" FilterStudents "теперь пусто.Я предполагаю, что это означает, что я выполнил шаги «.include» в строке 7 и 8 неправильно, но не смог исправить это.
listFilter = () => {
let newList = [];
let search = this.state.search;
let list = this.state.filteredStudents;
if (this.state.search !== "") {
for (let i = 0; i > list.length; i++) {
let checkFirst = list[i].firstName.includes(search);
let checkLast = list[i].lastName.includes(search);
if (checkFirst === true || checkLast === true) {
newList.push(list[i]);
}
}
this.setState({ filteredStudents: newList });
} else {
let resetStudents = this.state.students;
this.setState({ filteredStudents: resetStudents });
}
}
Я пытаюсь более или менее воспроизвести это поведение точно так же, какЯ нашел в этом примере:
https://codepen.io/pjmtokyo/pen/ZGVjVV
, но я не смог.Написанная функция просто очищает массив.Я предполагаю, что в моей реализации шагов «.include» в строке 7 и 8 произошла ошибка, но я не смог ее исправить.