Я храню массив объектов в AsyncStorage и хотел бы узнать, как лучше всего удалить конкретный объект. Прямо сейчас я передаю идентификатор своей функции, а затем перебираю массив для соответствия идентификатору и удаляю объект, а затем массив в 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',
})