Я храню массив объектов в 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,