У меня есть состояние массива, заполненное объектами, называемыми элементами:
const [items, setItems] = useState([{name: "", toppings: []}])
Однако, когда я пытаюсь удалить указанный индекс с помощью этой функции:
const removeItem = (index) => {
setItems(items.filter((item, i) => i !== index))
areItemsCompleted()
}
Он работает, когда я печатаю элементы консоли вне функции , однако элемент не отображается должным образом. Он удаляет только последний элемент массива из jsx, но массив items
имеет правильные значения. Я где-то читал, что React только поверхностно проверяет изменения состояния, поэтому он не проверяет содержимое удаляемого объекта. Однако я не уверен, почему в консоли отображается, что items
имеет правильное значение, но компоненты не отображают правильные данные. (Вместо этого он отображает те же данные, за исключением последнего элемента в items
).
Я пробовал несколько способов удаления элементов из моего массива, например
const removeItem = (index) => {
let arr = [...items]
arr.splice(index, 1)
setItems(arr)
areItemsCompleted()
}
Как мне удалить элемент из моего массива, полный объектов, и отобразить правильные данные?