Чтение из AsyncStorage, Parse Array, Convert String to Date - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь прочитать массив из хранилища Asyn c с ключом «напоминания».

Проблема в JSON .parse не удалось преобразовать ключ 'time' элемента в объекте Array to Date.

Мне нужно читать из хранилища, анализировать и назначать состояние напоминаний с помощью setReminders ()

// EXAMPLE DATA IN ASYNC STORAGE
[{day: 'Monday', time: '2020-04-03T15:17:07.554Z', status: false},
{day: 'Friday', time: '2020-04-03T15:17:07.951Z', status: true},]


// LOAD REMINDERS
  useEffect(readReminders, []);

  function readReminders() {
   AsyncStorage.getItem('reminders').then(value =>setReminders(value));
}

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Я добавил ту же проблему с датой. попробуйте использовать момент вместо нового Дата () ... 'npm установить момент import moment from "moment"; const time= '2020-04-03T15:17:07.554Z'; const todate= moment(time); Надеюсь, это поможет.

1 голос
/ 03 апреля 2020

Вы можете проанализировать дату из строки, используя Date.parse(string) или new Date(string), например:

function readReminders() {
   AsyncStorage.getItem('reminders').then(values => {
      const reminders = values.map(item => {
         return {
           ...item,
           time: new Date(item.time)
         }
      });
   });
}
...