Преобразовать строку, возвращенную обещанием в массив - PullRequest
0 голосов
/ 21 ноября 2018

У меня проблемы с преобразованием строки, возвращенной обещанием, в массив.Обещание возвращается AsyncStorage в React Native.Я пробовал JSON.parse и .split (), но не думаю, что использую их правильно.Мне нужно иметь возможность вызывать конкретные пары ключ-значение из массива впоследствии.Пожалуйста, дайте мне знать, если у вас есть какие-либо предложения.Я включил свой код, снимок экрана с ошибкой и возвращенные значения в журнал консоли

onLocationsSelectionChange = (locationsSelected) => {
console.log("does this work", locationsSelected, this.state.locationsSelected.length)
AsyncStorage.setItem('@MySuperStore:locationsSelected', JSON.stringify(this.state.locationsSelected));

const myArray = AsyncStorage.getItem('@MySuperStore:locationsSelected')
console.log('test Array', (myArray));
console.log('myArray', JSON.parse(myArray))
this.setState({locationsSelected});

};

Изображение: https://i.stack.imgur.com/KEdlg.png

1 Ответ

0 голосов
/ 21 ноября 2018

Из AsyncStorage документации вы должны получить свой товар следующим образом:

_retrieveData = async () => {
  try {
    const value = await AsyncStorage.getItem('TASKS');
    if (value !== null) {
      // Here use JSON.parse(value)
    }
   } catch (error) {
     // Error retrieving data
   }
}
...