Реагировать на собственное асинхронное хранилище не может получить данные - PullRequest
0 голосов
/ 28 августа 2018

Я запускаю свой реактивный проект с npm start. На моем эмуляторе я установил expo для просмотра моего приложения. Также я использую http://ip:19001/debugger-ui/ для отладки моего приложения в Google Chrome.

Я не знаю, что я делаю неправильно, но я не могу получить данные из asyncstorage. Можете ли вы дать мне несколько советов, как исправить эту проблему.

В одном из моих занятий я храню данные;

 storeDataInAsync1(idSchool,year) {
      try {
            //await AsyncStorage.removeItem('user');

            AsyncStorage.setItem('dateRange', this.props.range);
            AsyncStorage.setItem('idSchool', idSchool);
            AsyncStorage.setItem('school_year', year);

          } catch (error) {
            // Error saving data
          }
    }

Мой вызов этого метода;

async saveMyProfil() {
    var formData  = new FormData();
    formData.append('id_school',this.props.idSchool);
    formData.append('school_year', this.props.year);





    await fetch(`${api.url}/my_profile/`, {
        method: 'POST',
        headers: {
          "Content-Type": "multipart/form-data"
        },
        body: formData,
      }).then((response) => response.json())
        .then((json) => {
          console.log('Response: ' + JSON.stringify(json));
          this.storeDataInAsync1(json.id_school,json.school_year);

          //_storeData(json.id_school,json.school_year);
          //this.doStuff(json.id_school,json.school_year);
        })
        .catch((error) => {

        });
  }

  back() {
    //this.storeDataInAsync();
    this.saveMyProfil();
    this.props.navigation.goBack();
  }

В другом упражнении есть метод для извлечения данных;

_retrieveData = async () => {
      try {
        const value = await AsyncStorage.getItem('idSchool');
        const year = await AsyncStorage.getItem('school_year');



        if (value !== null && year !== null) {
          // We have data!!
          console.log('Id School: ' + value);
          console.log('Year: ' + year);
        }
       } catch (error) {
         // Error retrieving data
       }
    }

Я вызываю _retrieveData in;

componentDidMount() {
        BackHandler.addEventListener('hardwareBackPress', this.handleBackButton);

        this._retrieveData();




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