React Native, выборка после асинхронной функции - PullRequest
0 голосов
/ 31 октября 2018

У меня есть проблема, которую я не знаю, как решить ...

У меня сохранен токен API в AsyncStorage, и когда я хочу сделать выборку для отдыха, мне нужен этот токен API, но я не знаю, как это сделать.

У меня есть файл Functions.js с функциями AsyncStorage.

async retrieveItem(key) {
  try {
    const retrievedItem =  await AsyncStorage.getItem(key);
    const item = JSON.parse(retrievedItem);
    return item;
  } catch (error) {
    console.warn(error.message);
  }
},
getApiToken: function(){
   try {
        return Functions.retrieveItem('api_token');
      } catch (error) {
        console.warn(error.message);
      }
    },

Файл с функциями выборки. (Api.js)

Я тестировал с асинхронной функцией, но не нашел ...

async get(url) {

    try {
        var api = await Functions.getApiToken();

        if (!api)
            api = "";

        let opt = {
            method: 'get',
            headers: new Headers({
                'Content-Type': 'application/x-www-form-urlencoded'
            }),
        };

        return fetch(baseUrl + url + api, opt);
    } catch (error){
        console.warn(error);
    }       

},

Когда я выполнял функцию извлечения, она работала без проблем

и файл экрана Home.js

componentDidMount() {

  Api.get('home').then( response => {
    this.setState({
        profiles: response.profiles,
    });
  });
}

1 Ответ

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

Пожалуйста, немного измените ваш код Functions.js -

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

async getApiToken{
  try {
    let token = await retrieveItem('api_token');
    return token;
  } catch (error) {
    console.warn(error.message);
  }
}

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...