反应本机异步存储无法获取数据

时间:2018-08-28 09:41:35

标签: react-native asyncstorage

我正在使用npm start启动我的react-native项目。在模拟器上,我已经安装了expo来查看我的应用程序。另外,我正在使用http://ip:19001/debugger-ui/在google chrome中调试应用程序。

我不知道我在做什么错,但是我无法从异步存储中获取任何数据。您能给我一些技巧来解决这个问题吗?

在我的一项活动中,我与之存储数据;

 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;

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

        this._retrieveData();




    }

0 个答案:

没有答案