J.Doe
J.Doe

Reputation: 1137

AsyncStorage returns unexpected error

Please forgive me if this question is caused by syntax error or of the sort, I'm new to React-Native and there is still many to learn.

I followed the docs and tried out AsyncStorage but it returns an error.

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);
  }
}
}

The error says something is wrong with AsyncStorage, but why? Screenshot

Just for the knowledge, is it wise to do AsyncOperation in a constructor method?

Upvotes: 2

Views: 1995

Answers (2)

Mark
Mark

Reputation: 1099

It is late, but try this:

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);
  }
}

Upvotes: 2

rooftop
rooftop

Reputation: 3027

You are use object notation, instead of an assignment here:

     loggedIn: false;

Should be:

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

or:

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

You also need to import AsyncStorage

var { AsyncStorage } = React;

Upvotes: 1

Related Questions