Я пытаюсь сохранить объект в AsyncStorage, затем извлечь его, объединить с текущим и снова сохранить, сохраняя и обновляя объект в любое время. Я действительно изо всех сил пытаюсь понять, как вы должны хранить и манипулировать этим, какие-либо предложения? это делается в компоненте, который будет монтироваться, когда компонент и приложение загружаются ps. Мне удается создать новый элемент массива со всем объектом
метод извлечения
_retrieveObj = async () => {
try {
const value = await AsyncStorage.getItem('OBJECT');
if (value !== null) {
return JSON.parse(value);
}
return [];
} catch (error) {
// Error retrieving data
}
};
метод хранения
_storeObj = async (obj) => {
let numberArray = [];
try {
let storedNumbers = await AsyncStorage.getItem('OBJECT');
if (storedNumbers !== null) {
numberArray = JSON.parse(storedNumbers);
}
numberArray.push(obj)
await AsyncStorage.setItem('OBJECT', JSON.stringify(numberArray));
} catch (error) {
console.log(error)
}
};
вызов внутри компонента
_UpdateAndSave = async (objToDisplay) => {
const storedObj = await this._retrieveObj();
if (storedObj !== objToDisplay) {
const obj = this._merge(storedObj ,objToDisplay);
const objToSave = JSON.stringify(obj);
this._storeObj(objToSave);
}
метод объединения объектов (найден онлайн)
_merge = (a, b) => {
let c = {};
for(let idx in a) {
c[idx] = a[idx];
}
for(let idx in b) {
c[idx] = b[idx];
}
return c;
};
Спасибо