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

#angular #ionic4

#angular #ionic4

Вопрос:

я использую Ionic 4 для создания приложения weather и добавил свойство для сохранения городов в локальном хранилище.

Я хочу удалить элемент weather city из локального хранилища.

Мне это понравилось, но это не удаляет элемент из списка:

   deleteItem(city){
    localStorage.removeItem('cities')
  } 
  

Мой полный код, включающий deleteItem

       // get weather data from provider     
      getWeather(city :string){
        this.weather.city(city).then(data=>{

          if (data) {
            this.weatherList.push(JSON.parse(data.data))
            console.log(data.data)
          //  save city with data
          this.saveWeatherEntry(city, data);

          // test the storage, 
          let entry = this.getWeatherEntry(city);
          console.log(city);
          console.log(entry);
          } else {


          }


        });
      }


      // check if exist before in local storage
      saveWeatherEntry(city, data) {
        let items_json = localStorage.getItem('cities');
        let items = [];
        if(items_json) {
           items = JSON.parse(items_json);
           let city_index = -1;
           for(let i = 0; i < items.length; i  ) {
              if(items[i].city == city) {
                city_index = i;
                break;
              }
           }

           if(city_index != -1) {
              items[city_index].data = data;
           } else {
              items.push({
                 city: city,
                 data: data
              });
           }

        } else {
           items.push({
              city: city,
              data: data
           });
        }   
        //save changes
        localStorage.setItem('cities', JSON.stringify(items));
      }

      // check if exist before in local storage
      getWeatherEntry(city) {
        let items_json = localStorage.getItem('cities');
        if(items_json) {
          let items = JSON.parse(items_json);
          let city_index = -1;
          for(let i = 0; i < items.length; i  ) {
             if(items[i].city == city) {
               return items[i].data;
             }
          }
        }
        return false;
      }

    // delete item          
    deleteItem(city){
        localStorage.removeItem('cities')
      }
  

Любое решение, пожалуйста?

Комментарии:

1. Вы должны использовать @ionic / storage для приложения ionic.

2. @AugustinR . локальное хранилище, которое я использовал выше, работает нормально, но проблема в том, что я не знаю, как его удалить

3. localStorage.removeItem(‘cities’) очищает весь элемент localStorage. Но, судя по всему, вы хотите удалить 1 город из списка городов в localStorage? В этом случае вам нужно проанализировать массив обратно из localStorage (список городов), манипулировать списком (удалить город), а затем снова установить элемент.

4. Большое вам спасибо . не могли бы вы, пожалуйста, помочь снова написать код?

5. нравится то, что вы сказали, потому что я новичок