Существуют различные проблемы:
handleRemoveSubtasks
пытается получить доступ к el.tasks
, даже если он не существует, поэтому выдает ошибку. handleRemoveSubtasks
фильтр возвращается в качестве собственного el
элемента вместо el.tasks
Проверьте следующий код:
const handleRemoveSubtasks = subtaskId => {
useList(
list.map(el => {
if (!el.tasks) return el // If no tasks, return the same element
return {...el, tasks: el.tasks.filter(task => task.id !== subtaskId)} // if tasks, filter them by id
})
);
};