When I use AsyncStorage.getItem() to retrieve the value of a specified key, it returns a Promise object as String not as an Object

Viewed 5634

Stored objected is:

{
 name: 'Chris',
 age: 30,
 traits: {
    hair: 'brown',
    eyes: 'brown'
  },
};

not able to retrieve value.propertyName.

AsyncStorage.getItem('key').then( (value) => console.log('value ', value, 'name is ', value.name));

output is : value {"name":"Chris","age":30,"traits":{"hair":"brown","eyes":"brown"}} name is undefined.

Please let me know how to retrieve a specific value from promise object

3 Answers

You could do for set the value the following

    async setAsyncStorage (key, value) {
        try {
          await AsyncStorage.setItem(key, JSON.stringify(value));
        } catch (error) {
          console.warn(error);
        }
      }

And for get the following:

    async getAsyncStorage (key) {
        try {
          const getAsyncStorageData = await AsyncStorage.getItem(key);
          const getAsyncStorageParsed = JSON.parse(getAsyncStorageData);
          return getAsyncStorageParsed;
        } catch (error) {
          console.warn(error);
        }
      }

Fore GetItem: const data = JSON.parse(await AsyncStorage.getItem('DataEnable')); this.setState({dataenable_user:data})

For SetItem: await asyncStorage.setItem('DataEnable',JSON.stringify(this.state.dataenable_user));

Related