Javascript 存储和更新存储的对象

Javascript 存储和更新存储的对象,javascript,react-native,asyncstorage,Javascript,React Native,Asyncstorage,我试图将一个对象存储在AsyncStorage中,然后检索它并将其与当前对象合并,然后再次保存它,从而始终保留和更新对象。我真的很难理解你应该如何存储和操作它,有什么建议吗?这是在组件和应用程序加载ps时,组件将装载中完成的。我仅设法使用所有对象创建一个新的数组元素 检索方法 _retrieveObj = async () => { try { const value = await AsyncStorage.getItem('OBJECT'); if (value !== nul

我试图将一个对象存储在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);
}
合并对象的方法(联机找到)


谢谢

获得数组的原因是您正在\u storeObj函数中保存对象数组。看起来您已经将现有对象和新对象合并为一个对象,因此只需保存合并结果。您不应该需要您的\u storeObj功能

_UpdateAndSave = async (objToDisplay) => {

const storedObj = await this._retrieveObj();
if (storedObj !== objToDisplay) {
  const obj  = this._merge(storedObj ,objToDisplay);

  const objToSave = JSON.stringify(obj);
  await AsyncStorage.setItem('OBJECT', objToSave);
}

你有什么问题?它不工作吗?我当前得到一个数组,其中存储的对象作为数组中的元素,而不是一个对象,其中包含来自now和saved会话的所有元素
_UpdateAndSave = async (objToDisplay) => {

const storedObj = await this._retrieveObj();
if (storedObj !== objToDisplay) {
  const obj  = this._merge(storedObj ,objToDisplay);

  const objToSave = JSON.stringify(obj);
  await AsyncStorage.setItem('OBJECT', objToSave);
}