onDelete(name) {
console.info("ProductList.onDelete: ", name);
let {products} = this.state;
products = products.filter(product => product.name !== name);
this.setState({products});
localStorage.setItem('products', JSON.stringify(products));
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Чтобы удалить элементы из локального хранилища, вам просто нужно запустить:
localStorage.removeItem("name of the item")
onDelete (имя) {console.info ("ProductList.onDelete:", имя); пусть {продукты} = this.state; products = products.filter (product => product.name! == name); this.setState ({продукты}); localStorage.removeItem ('продукты', JSON.stringify (продукты)); }
Да, но я думаю, что если вам нужно удалить элемент из массива, вы должны также ввести какое-то ключевое значение или разбить массив.
products.filter (product => product.name! == name); Эта строка находит элемент по имени
На самом деле вы не используете localStorage для массивов. Проверьте функцию карты в react, если вы действительно хотите делать такие вещи. У вас нет идентификатора localStorage, вы можете просто удалять вещи, вызывая точное имя элемента localStorage. Если у вас есть элемент с именем (привет), он будет удален. Но если у вас есть 10 элементов, которые называются «привет», все 10 из них будут удалены через localStorage.removeItem просто потому, что у вас нет привязанных к ним идентификаторов. Для этого ваши продукты должны быть массивом. Опять же, проверьте функцию карты реакции.
@Prometheus прав.
Поскольку вы просили ReactJS, я надеюсь, что следующая рабочий пример вам поможет: https://jsfiddle.net/ghoshnirmalya/eqb9vych/5/.
addItem = () => localStorage.setItem("name", this.state.name)
removeItem = () => localStorage.removeItem("name")
Я добавил целый пример в ReactJS.
let items =JSON.parse(localStorage.getItem("item"));
items = items.filter((item) => item.id !== id);
localStorage.setItem("item", JSON.stringify(items));
if (items.length === 0) {
localStorage.removeItem("item");
}
Дайте объяснение
localStorage.removeItem (); затем используется, как получить именно тот элемент, который нужно удалить.