У меня есть блок WordPress Gutenberg, в который я могу добавлять элементы в массив. Однако мне нужно предоставить пользователю способ удалить определенный элемент списка c из массива элементов при нажатии кнопки рядом с указанным пунктом c. Данные хранятся в виде массива объектов. Вне WordPress и Gutenberg это будет работать на базовом уровне c удаления элемента по индексу из массива. Однако следующее не только не удаляет элемент, но и блокирует добавление новых элементов.
Разметка, используемая для запуска функции удаления
{items.map((item, index) => {
return (
<Button
onClick={removeElement(index)}
/>
<RichText.Content
value={item['listItem']}
/>
)
})}
Используется для добавления нового пустого элемента в список
const addListItem = () => {
setAttributes({
items: items.concat({
listItem: ''
})
});
};
Как я сейчас пытаюсь удалить выбранный объект из массива
const removeListItem = index => {
items.splice(index, 1);
return items;
};
Я видел предложения использовать array.filter
, но не буду удалять индекс из массива.