异步存储在应用程序重新加载时不持久

时间:2019-10-28 22:30:46

标签: react-native asyncstorage

我想知道您是否可以帮助我弄清楚为什么我使用异步存储在React Native中重新加载我的应用程序时我的数据不持久。这是我的详细信息:

React Native .61.2 /使用React Native Community –异步存储/在iOS的XCode Simulator中进行测试

最初设置数据然后获取数据时,我得到了正确的响应。当我设置数据时,重新加载应用程序,然后尝试再次获取我的数据,它以字母“ a”的形式返回。

这是我设置数据的方式:

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

这是我的渲染中的JSX,它调用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,
              }}
            />

这是我获取数据的方式:

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

可能是我误解了持久性存储的工作方式,但我认为是这样,因此数据在诸如重新加载之类的数据上仍然存在吗?

感谢您的帮助!

0 个答案:

没有答案