Search code examples
javascriptreactjsreact-nativeasyncstorage

AsyncStorage.getItem() doesn't seem to work


When I try to set a value via AsyncStorage.getItem(), I cannot request it back.

let tokenData = null;
const getData = async () => {
  let token;
  try {
    token = await AsyncStorage.getItem('token');
    tokenData = JSON.parse(token);
  } catch (e) {
    // error reading value
  }
};

I have set item like follows

const setLoginLocal = async loginData => {
  try {
    let token = loginData.headers.authorization;
    let headerToken = ['token', JSON.stringify(token)];
    let user = ['user', JSON.stringify(loginData.data)];
    await AsyncStorage.setItem([user, headerToken]);
  } catch (err) {
    console.log(err);
  }
};

Solution

  • If you want to store data you have to setItem like this:

      const storeData = async (key, value) => {
        try {
          await AsyncStorage.setItem(key, value);
        } catch (error) {
          console.log(error);
        }
      };
    

    then you can retrieve it with getItem like this:

      const getData = async key => {
        try {
          const data = await AsyncStorage.getItem(key);
          if (data !== null) {
            console.log(data);
            return data;
          }
        } catch (error) {
          console.log(error);
        }
      };