我正在使用react native开发一个应用程序,我在使用AsyncStorage时遇到了这个问题。我在登录时存储用户数据,然后在主页面上获取数据。我只是想在一个小的欢迎消息中显示用户的名字,然后如果用户退出,我需要清除存储,然后获取下一个用户在设备上登录的存储并显示他们的名字。
问题是我第一次登录用户名时不显示,只有当我注销并重新登录时才显示该名称。不仅如此,它似乎还保留了最后一个登录的人的名字,并在下次登录时显示该名字。
任何帮助将不胜感激。
下面是获取和显示用户名的主代码
AsyncStorage.getItem('user_data', (err, result) => {
console.log(result);
var userdata = JSON.parse(result);
console.log(userdata);
firstname = userdata.firstName;
lastname = userdata.lastName;
});
const history = useHistory();
const doLogout = event => {
event.preventDefault();
history.push('/');
AsyncStorage.removeItem('user_data', (err, result) => {
console.log(result);
});
};
return (
<View style={styles.container}>
<Text>Welcome {firstname} </Text>
<View style={{ marginTop: 10 }}>
<TouchableOpacity
style={styles.loginbut}
activeOpacity={.5}
onPress={doLogout}
>
<View style={{ flexDirection: 'row', alignSelf: 'center' }}>
<FontAwesomeIcon icon={faSignOutAlt} size={20} style={{ color: '#ffffff' }} />
<Text style={{ textAlign: 'center', fontWeight: 'bold', color: 'white' }}> Sign Out </Text>
</View>
</TouchableOpacity>
</View>
</View>
);
} export default MainUI```
3条答案
按热度按时间2izufjch1#
试试这边
5jvtdoz22#
我觉得在进程运行过程中,如果你想在注销后清除用户数据,最好使用
redux
或context
来存储。AsyncStorage
类似于您希望在用户退出进程后存储一些数据。比如登录电子邮件或一些应用程序设置。
cczfrluj3#
尝试完全清除AsyncStorage。