Реагируй родной - AsyncStorage, жди и синхронизируй - PullRequest
0 голосов
/ 17 октября 2018

Я использую AsyncStorage, но мне кажется, что я не использую правильно ...

файл functions.js

import { AsyncStorage } from 'react-native';

const Functions = {
    async storeItem(key, item) {
      try {
AsyncStorage.setItem()
          var jsonOfItem = await AsyncStorage.setItem(key, JSON.stringify(item));
          return jsonOfItem;
      } catch (error) {
        console.warn(error.message);
      }
    },
    async retrieveItem(key) {
      try {
        const retrievedItem =  await AsyncStorage.getItem(key);
        const item = JSON.parse(retrievedItem);
        return item;
      } catch (error) {
        console.warn(error.message);
      }
    }
}

export default Functions;

Файл home.js

importФункции из 'Константы / функции';

export default class Home extends Component {


  constructor(props) {
    super(props);

    product = Functions.retrieveItem('products');
   console.warn(product);
  }
}

console.warn (product) вернул

{"_40":0,_65":1,"_55":null,"_72":null}

Я считаю, что это происходит потому, что я получаю объект до его обработки.Потому что, если я добавлю console.warn перед возвратом функции retrieveItem, он хорошо покажет объект ...

1 Ответ

0 голосов
/ 17 октября 2018

- это обещание, так что ... вам нужно использовать

Functions.retrieveItem('products').then((res) => { //do something with res });
...