reactjs - 注销时如何在 React Native 中删除异步存储中每个键的值
问题描述
我正在使用async
React Native 中的存储来存储从服务器获取的响应。现在我想在注销时删除每个键的值。但是方法removeItem
无法做到这一点,这是我的代码...
logout = ()=>{
const {id , storedValue ,storedType,profileImg,type } = this.state;
console.log("here" , id);
axios.post('api/v1/user/do_logout', {
user_id: id,
})
.then( async (response) => {
if(response.data.type == "success"){
alert("Logout Successfully");
await AsyncStorage.removeItem(storedValue);
await AsyncStorage.removeItem(storedType);
await AsyncStorage.removeItem(profileImg);
await AsyncStorage.removeItem(type);
await AsyncStorage.removeItem(id);
console.log(storedValue , storedType , profileImg , type ,id );
this.props.navigation.navigate("LoginScreen");
}else if(response.data.type == "error"){
// console.log(self.id);
alert("Incorrect Detail");
}
})
.catch((error) => {
console.log(error);
});
}
在上面的代码中,我试图删除每个键的值,但它不起作用。好心的帮助
解决方案
我正在尝试删除每个键的值,但它不起作用。
您可能会认为,因为您调用console.log(storedValue , storedType , profileImg , type ,id );
它不是清除,但可能是清除,您正在显示组件的状态,而不是AsyncStorage
.
如果不是这种情况,请更好地解释您的意思but it is not working
。
一次删除所有内容的一种方法是使用AsyncStorage.multiRemove
.
await AsyncStorage.multiRemove([storedValue, storedType, profileImg, type, id])
您应该注意到 ,
storedValue
,storedType
,profileImg
,type
需要id
是key
您使用的那个,AsyncStorage.setItem(key, value)
而不是value
.
您还可以使用getAllKeys
和从您的应用程序中删除所有存储的密钥multiRemove
。
AsyncStorage.getAllKeys()
.then(keys => AsyncStorage.multiRemove(keys))
.then(() => alert('All Keys removed'));
推荐阅读
- asp.net-core - Application Insights:控制台应用程序 HttpClient 关联不起作用
- css - 为什么 Am Chars 和弦图会切割标签文本?
- r - 如何根据 R 中的某些模式导入大量数据集
- sql - 输入“来自”不匹配。期待:'on','using' 在 Athena
- .net - 更新多目标项目的包引用
- c# - 如何强制 Visual Studio 2022 创建带有命名空间和类的控制台项目(就像过去的好日子一样)?
- flutter - 我们可以与从事同一项目的其他开发人员共享我的“API KEY”吗?
- c - Windows API:可以以编程方式移动 Windows IME 输入框吗?
- multilingual - 如何削减 Huggingface 上共享的预训练多语言模型?
- css - 未检测到 xpath 跨度