Удалить элемент из локального хранилища в reactjs

Это правильный код для удаления элемента из localStorage:

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));
}

localStorage.removeItem (); затем используется, как получить именно тот элемент, который нужно удалить.

Abhishek Konnur 03.06.2018 10:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
10 738
3

Ответы 3

Чтобы удалить элементы из локального хранилища, вам просто нужно запустить:

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 (продукты)); }

Abhishek Konnur 03.06.2018 10:39

Да, но я думаю, что если вам нужно удалить элемент из массива, вы должны также ввести какое-то ключевое значение или разбить массив.

Prometheus 03.06.2018 10:41

products.filter (product => product.name! == name); Эта строка находит элемент по имени

Abhishek Konnur 03.06.2018 10:44

На самом деле вы не используете localStorage для массивов. Проверьте функцию карты в react, если вы действительно хотите делать такие вещи. У вас нет идентификатора localStorage, вы можете просто удалять вещи, вызывая точное имя элемента localStorage. Если у вас есть элемент с именем (привет), он будет удален. Но если у вас есть 10 элементов, которые называются «привет», все 10 из них будут удалены через localStorage.removeItem просто потому, что у вас нет привязанных к ним идентификаторов. Для этого ваши продукты должны быть массивом. Опять же, проверьте функцию карты реакции.

Prometheus 03.06.2018 12:59

@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");
    }

Дайте объяснение

Sagar Gangwal 20.04.2020 08:32

Другие вопросы по теме