javascript - 无法在本机反应中使用 AsyncStorage 保存用户名
问题描述
我无法在我的应用程序中使用 AsyncStorage 保存用户名。
我正在使用 Switch 组件,如果值为 true,则保存用户名并在注销时用户名应保留。
AsyncStorage 返回未定义
// 用户切换是否保存用户名的函数
toggleRememberMe = value => {
this.setState({ rememberMe: value })
if (value === true) {
//user wants to be remembered.
this.rememberUser();
} else {
this.forgetUser();
}
}
// function to save username
rememberUser = async () => {
try {
await AsyncStorage.setItem('user_userID', this.state.signInEmail);
} catch (error) {
console.log(error)
}
};
// function to get username
getRememberedUser = async () => {
try {
const username = await AsyncStorage.getItem('user_userID');
if (username !== null) {
return username;
}
} catch (error) {
console.log(error)
}
};
// function to forget username or remove
forgetUser = async () => {
try {
await AsyncStorage.removeItem('user_userID');
} catch (error) {
console.log(error)
}
};
// componentDidMount
async componentDidMount() {
const username = await this.getRememberedUser();
console.log(username)
this.setState({
signInEmail: username || "",
rememberMe: username ? true : false });
}
//render
<Switch
trackColor={{true: '#16752A'}}
value={this.state.rememberMe}
onValueChange={(value) => this.toggleRememberMe(value)}
/>
<Text>Remember Me</Text>
我该如何解决这个问题?
解决方案
推荐阅读
- titanium - 在本机应用程序中访问“Titanium.App.Properties”
- python - kivy - TypeError:描述符“属性”需要一个“kivy._event.EventDispatcher”对象,但收到一个“method_descriptor”
- c# - 如何在不更改/添加构造函数的情况下使用依赖注入
- html - 使框的大小与包装内容相同
- excel - Excel - 将 3 个 if 语句合二为一,每个语句都需要满足多个条件?
- jquery - 如何使用 replace() 在 Jquery 之前删除逗号和字符串?
- react-native - 使用 iOS Accessibility Inspector 检索到的 ReactNative 的 `accessibilityLabel` 和 iOS Label 是否相同?
- javascript - Javascript 库不适用于 React Native 发布版本
- postgresql - 如何选择不符合排除约束的行
- selenium - 有人可以建议我,如何为图像编写 xpath。请在下面找到 xpath 是否有效