Reactjs: Подскажите как удалить объект из массива, используя свойство объекта

Рейтинг: 0Ответов: 1Опубликовано: 27.01.2023

У меня есть список задач, который содержит кнопку удаления в child, при нажатии на которую запускается событие в родительском компоненте. Я хочу, чтобы это событие удаляло запись из массива.

const todo = [
  { name: 'item1', isComplete: false },
  { name: 'item2', isComplete: true },
  { name: 'item3', isComplete: false },
]

deleteItem(ItemToDelete) {
    this.state.todo.remove(item => item.name === itemToDelete);
    this.setState({ todo: this.state.todo });

}

Ответы

▲ 0Принят

Мало информации в вопросе.Что конкретно хотите реализовать? Есть несколько способов удаления элемента из массива. Как вариант с помощью фильтрации.

// Todos.jsx
...

remove = (itemId) => () => {
  this.setState((state, props) => {
    const { todos } = state
    const newTodos = todos.filter(({ id }) => id !== itemId)
    return { todos: newTodos }
  })
}

const { todos } = this.state

render (
  <ul>
    {todos.map((todo) => 
        <li key={todo.id}><Todo handler={this.remove} todo={todo} /></li>}
 </ul>
)

// Todo.jsx
... 

render(
  <article onClick={handler(todo.id)}>...</article>
)