Удаление подзадач в React, с помощью зацепок - PullRequest
1 голос
/ 14 января 2020

У меня проблема с удалением подзадач в моем приложении. Я хочу удалить выбранную подзадачу из «Домена», istead handleRemoveSubtasks удаляет все подзадачи вместе.

Вот моя песочница: https://codesandbox.io/s/weathered-paper-niyc3

Удаление подзадач находится в

const handleRemoveSubtasks = subtaskId => {
    useList(
      list.map(el => {
        console.log(el.tasks);
        console.log(subtaskId);
        console.log(el.tasks.filter(ele => ele.id !== subtaskId));
        return el.tasks.filter(ele => ele.id !== subtaskId);
      })
    );
  };

1 Ответ

2 голосов
/ 14 января 2020

Существуют различные проблемы:

  • 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
      })
    );
  };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...