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



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

React Native.61.2/使用React Native社区-iOS 上XCode模拟器中的异步存储/测试

当我最初设置数据,然后得到它时,我得到了正确的响应。当我设置数据、重新加载应用程序并尝试再次获取数据时,它会以字母"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);
}
}

我可能误解了持久存储是如何工作的,但我认为是这样,数据在重新加载之类的东西上仍然存在?

感谢您的帮助!

在我的iOS React Native应用程序中,AsyncStorage没有持续刷新,因为我还使用Firebase Authentication

Firebase身份验证在后台使用react-native中的AsyncStorage。如果同时使用@react-native-async-storage/async-storage,则会引发冲突。

此处记录了该问题。

最新更新