Async Storage is not persisting on app reload

Viewed 2232

I'm wondering if you could help me figure out why my data doesn't persist when I reload my app in React Native using Async Storage. Here are my details:

React Native .61.2 / Using React Native Community – Async Storage / testing in XCode Simulator on iOS

When I initially set my data and then get it, I get the correct response. When I set my data, reload the app, and try to get my data again, it comes back as the letter "a".

Here's how I'm setting my data:

changeUsernameToLowercase = text => {
    var temp = text.toLowerCase();
    this.setState({email: temp});
    this._storeData('@email', temp);
  };

async _storeData(name, value) {
    try {
      await AsyncStorage.setItem(name, value);
    } catch (error) {
      // Error saving data
      console.log('FAILING: ' + error);
    }
  }

And here's my JSX from my render that calls changeUsernameToLowercase:

 <TextInput
              onChangeText={text => this.changeUsernameToLowercase(text)}
              placeholder="Email address"
              value={this.state.email}
              autoCapitalize="none"
              type="password"
              style={{
                flex: 1,
                backgroundColor: '#fff',
                borderBottomColor: '#333',
                borderBottomWidth: 1,
              }}
            />

Here's how I'm getting my data:

componentDidMount() {
    this._retrieveEmail().then(response => {
      console.log('My log:' + response); //returns letter a on reload
      return response;
    });
  }

async _retrieveEmail() {
    try {
      var email = await AsyncStorage.getItem('@email');
      console.log('MY EMAIL LOG:' + email); //returns letter a on reload
      return email;
    } catch (e) {
      console.error(e);
    }
  }

It's possible I'm misunderstanding how persistent storage works, but I thought it was so the data persists on something like a reload?

Any help is appreciated!

0 Answers
Related