Как добавить элементы в React Native AsyncStorage

Я создаю приложение, в котором пользователь вставляет задачу и время, когда задача была создана, и оба сохраняются в asyncStorage в react native. Когда новая задача добавляется в asyncstorage, я ожидал, что и предыдущая задача, и новая задача будут отображаться функцией getItems(). Как это сделать?

async function saveItems() {
      const items = []
              items.push(task,timestamp )
              await AsyncStorage.setItem('key', JSON.stringify(items))
          }

     async function getItems() {
          try {
            const items =  await AsyncStorage.getItem('key');
            if (items !== null) {
              console.log(JSON.parse(items));
            }      
          } catch (error) {
            console.log(error)
          }
         }

person user23424    schedule 09.12.2020    source источник


Ответы (2)


async function saveItems() { 
   var items = AsyncStorage.getItem('key');
   if(items)
       items.push([task,timestamp] ) 
  await AsyncStorage.setItem('key', items);
 } 

async function getItems() { 
         const items = await AsyncStorage.getItem('key');
         if (items !== null)
         console.log(items);
}

Items будут массивом массивов Ex:

items = [[task1,timestamp1],[task2,timestamp2]]
person dhruv tailor    schedule 09.12.2020

Что вы можете сделать, так это определить структуру для такой задачи, как

const task = {
  description: '',
  timestamp: ''
}

Теперь всякий раз, когда создается задача, вы можете добавлять ее в задачи, которые хранятся в AsyncStorage.

const saveItems = async() => {
  const tasks = await AsyncStorage.getItem('key');
  if(tasks != null){
    const updatedTasks = JSON.parse(tasks).append(task);
    await asyncStorage.setItem('key', JSON.stringify(updatedTasks))
  }
  else{
    await AsyncStorage.setItem('key', JSON.stringify([task]))
  }
}

Теперь, когда вы получите элементы из AsyncStrorage, он получит полный список задач.

person folan    schedule 09.12.2020