【问题标题】:AsyncStorage returns unexpected errorAsyncStorage 返回意外错误
【发布时间】:2016-08-10 05:09:57
【问题描述】:

如果这个问题是由语法错误引起的,请原谅我,我是 React-Native 的新手,还有很多东西要学习。

我按照文档尝试了 AsyncStorage,但它返回错误。

class iCare extends Component {

constructor(props) {
super(props);

async getUserStatus(key){
  try{
    var value = await AsyncStorage.getItem(key);
    if (value == null || value == 0){
      console.log('No loggedIn key yet.');
      loggedIn: false;
    } else {
      console.log('loggedIn key existed');
      loggedIn: true;
    }
  }catch(error){
    console.log('caught error' + error);
  }
}
}

错误表明 AsyncStorage 有问题,但为什么呢?

仅凭知识,在构造方法中执行 AsyncOperation 是否明智?

【问题讨论】:

    标签: javascript async-await react-native asyncstorage


    【解决方案1】:

    已经很晚了,但是试试这个:

    constructor(props) {
      super(props);
    }
    
    async getUserStatus(key){
      try{
        var value = await AsyncStorage.getItem(key);
        if (value == null || value == 0){
          console.log('No loggedIn key yet.');
          loggedIn = false;
        } else {
          console.log('loggedIn key existed');
          loggedIn = true;
        }
      }catch(error){
        console.log('caught error' + error);
      }
    }
    

    【讨论】:

    • 真的很有帮助!我终于发现了我的错误!谢谢!
    • 很高兴它很有用。
    【解决方案2】:

    您在这里使用对象表示法,而不是赋值:

         loggedIn: false;
    

    应该是:

    //define logged in somewhere before let loggedIn = null;
    loggedIn = true; 
    

    或:

    //return an actual object?
    return {loggedIn: false};
    

    你还需要导入 AsyncStorage

    var { AsyncStorage } = React;
    

    【讨论】:

    • 我改了,问题依旧,貌似程序连code都没有通过var value = await AsyncStorage.getItem(key);
    • 你可能需要导入 AsyncStorage,怀疑它是全局的。
    • 我已经在全球范围内包含了这个... 'var { Alert, AppRegistry, AsyncStorage, StyleSheet, Text, Image, View, Component, } = React;'
    猜你喜欢
    • 2022-11-21
    • 2015-08-23
    • 2019-09-10
    • 1970-01-01
    • 2015-05-09
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    相关资源
    最近更新 更多