Лучший способ удалить определенный элемент в AsyncStorage

Я храню массив объектов в AsyncStorage и хотел бы знать лучший способ удалить конкретный объект. Прямо сейчас я передаю id своей функции, а затем прохожу через массив, чтобы соответствовать идентификатору и удалять объект, а затем обновляется массив в AsyncStorage. Кажется, это работает нормально, но мне интересно, оптимально ли это или есть ли лучший способ сделать это?

Моя функция прямо сейчас:

  export function removeData(id) {

    AsyncStorage.getItem('@books')
    .then((books) => {
    const updatedBooks = (JSON.parse(books))

        for (let i = 0; i < updatedBooks.length; i++) {
           if(updatedBooks[i].id == id) {
              updatedBooks.splice(i, 1);
          }
      }
      AsyncStorage.setItem('@books', JSON.stringify(updatedBooks));

   })
}

Моя функция добавления данных в AsyncStorage:

    export function addData(book) {

    AsyncStorage.getItem('@books')
    .then((books) => {
    const b = books ? JSON.parse(books) : [];
    b.push(book);
    AsyncStorage.setItem('@books', JSON.stringify(b));
  });  
}

Кнопка для добавления данных с образцами данных для отображения структуры:

  <Button 
        title = "Add book"
        onPress={() => addData({
            id: 1,
            title: 'Harry Potter',
            author:'J.K. Rowling',
            thumbnail:'https://covers.openlibrary.org/w/id/7984916-M.jpg',
        })

arrays,react-native,asyncstorage,

1

Ответов: 1


0

Чтобы удалить отдельный элемент

AsyncStorage.removeItem('key', (err) => {
  // key 'key' will be removed, if they existed
  // callback to do some action after removal of item
});

Чтобы удалить несколько элементов

let keys = ['k1', 'k2'];
AsyncStorage.multiRemove(keys, (err) => {
  // keys k1 & k2 removed, if they existed
  // callback to do some action after removal of item
});

Справка:

Метод
RemoveItem Метод MultiRemove

массивы, реагируют родные, asyncstorage,
Похожие вопросы
Яндекс.Метрика