Answer the question
In order to leave comments, you need to log in
Can you explain how this code works in React?
I am writing a todo list on hooks, I need to add an action to remove an element from the array.
On the Internet, I found the following code
[
const deleteItem = (id) => {
setTodo(
todo.filter(item => {
return item.id !== id
})
);
}
] return item.id !== id
Answer the question
In order to leave comments, you need to log in
This is the usual native method for arrays. It has nothing to do with React.
Look at the lines:
const [todo, setTodo] = useState([]) // todo: массив todo'шек. setTodo - сеттер, для изменения переменной todo
const deleteItem = (id) => { // Объявляем функцию deleteItem, которая принимает внутрь id интересующей todo
setTodo( // Устанавливаем новый state для переменной todo, которую объявили выше
todo.filter(item => { // Берем текущее состояние переменной todo.
// filter как forEach проходится по каждому элементу массива.
// Принимает в себя callback вида (item, i, array), где item - текущий элемент (соответствует array[i]), текущий индекс, текущий массив (который обходим)
// В функции callback'е ты должен вернуть булевое значение (true/false). Если true - элемент остается в массиве, если нет - убирается
return item.id !== id // Если id элемента не равен id, который хотим удалить - оставляем элемент в массиве, иначе убираем
})
);
const products = [
{ id: 1, price: 25 },
{ id: 2, price: 50 },
{ id: 3, price: 75 },
{ id: 4, price: 100 },
{ id: 5, price: 125 },
]
// Оставим продукты, которые только с ценой выше или равной 100
const filteredProducts = products.filter(product => product.price >= 100) // [{ id: 4, price: 100 }, { id: 5, price: 125 }]
The (id) of the item to be deleted is passed to the deleteItem function as a parameter;
Next, we call setTodo( ItemToDelete )
We find the ItemToDelete using todo.filter() by the condition item.id !== id
todo.filter(item => {
return item.id !== id
})
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question