Javascript 我试图在注销时清除AsynStorage

Javascript 我试图在注销时清除AsynStorage,javascript,react-native,asyncstorage,Javascript,React Native,Asyncstorage,我正在使用react native开发一个应用程序,我在异步存储中遇到了这个问题。我在登录时存储用户数据,然后在主页上获取数据。我只想在一条小欢迎消息中显示用户名,然后如果用户注销,我需要清除存储,然后获取下一个登录设备的用户的存储,并显示他们的姓名 问题是我第一次登录时,用户名不会显示,只有在我注销并重新登录时才会显示用户名。不仅如此,它似乎还保留了上次登录的人的姓名,并在下次登录时显示该姓名 任何帮助都将不胜感激 下面是我获取并显示用户名的主代码 AsyncStorage.getI

我正在使用react native开发一个应用程序,我在异步存储中遇到了这个问题。我在登录时存储用户数据,然后在主页上获取数据。我只想在一条小欢迎消息中显示用户名,然后如果用户注销,我需要清除存储,然后获取下一个登录设备的用户的存储,并显示他们的姓名

问题是我第一次登录时,用户名不会显示,只有在我注销并重新登录时才会显示用户名。不仅如此,它似乎还保留了上次登录的人的姓名,并在下次登录时显示该姓名

任何帮助都将不胜感激

下面是我获取并显示用户名的主代码


    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```

AsyncStorage.getItem('user\u data',(err,result)=>{
控制台日志(结果);
var userdata=JSON.parse(结果);
console.log(userdata);
firstname=userdata.firstname;
lastname=userdata.lastname;
});
const history=useHistory();
const doLogout=事件=>{
event.preventDefault();
历史推送(“/”);
AsyncStorage.removeItem('user\u data',(err,result)=>{
控制台日志(结果);
});
};
返回(
欢迎{firstname}
退出
);
}导出默认MainUI```
试试这种方法

async removeItemValue(key) {
    try {
        await AsyncStorage.removeItem(key);
        return true;
    }
    catch(exception) {
        return false;
    }
}

我认为如果您想在注销后清除用户数据,最好在运行过程中使用
redux
context
来存储用户数据

AsyncStorage
类似于您希望在用户退出流程后存储一些数据

如日志电子邮件或某些应用程序设置