У меня есть следующий обратный вызов, связанный с onClick. Предполагается, что этот обратный вызов удалит связанную задачу из списка на основе идентификатора.
Когда я использую console.log, я могу проверить, что logi c работает, однако, когда я использую setState, он не работает.
Я также пробовал использовать функцию обратного вызова ... Я могу подтвердить, что функция обратного вызова вызывается, в частности, не работает функция setState.
Почему?
state = {
todos: [],
todoToShow: 'all',
};
CALLBACK:
handleDeleteTodo = (id) => {
this.setState((state) => {
return {
todos: this.state.todos.filter((todo) => todo.id !== id) ,
};
});
};
Способ рендеринга задач:
if (this.state.todoToShow === 'all') {
todos = this.state.todos;
} else if (this.state.todoToShow === 'active') {
todos = this.state.todos.filter((todo) => !todo.complete);
} else if (this.state.todoToShow === 'complete') {
todos = this.state.todos.filter((todo) => todo.complete);
}
{todos &&
todos.map((todo) => (
<Todo
todo={todo}
key={todo.id}
// id={todo.id}
toggleComplete={() => this.toggleComplete(todo.id)}
// text={todo.text}
onDelete={() => this.handleDeleteTodo(todo.id)}
/>
))}```