J'essaie de vérifier si une clé est disponible dans AsyncStorage
avec AsyncStorage.getItem('key_name')
. Si la clé n'est pas disponible, elle ne renvoie pas la valeur null, elle renvoie néanmoins l'objet de promesse suivant:
Promise
_45:0
_54:null
_65:null
_81:1
Ma fonction pour obtenir des données est la suivante:
checkItemExists(){
let context = this;
try {
let value = AsyncStorage.getItem('item_key');
if (value != null){
// do something
}
else {
// do something else
}
} catch (error) {
// Error retrieving data
}
}
Comment puis-je vérifier si une clé existe dans AsyncStorage ou pas?
async checkUserSignedIn(){
let context = this;
try {
let value = await AsyncStorage.getItem('user');
if (value != null){
// do something
}
else {
// do something else
}
} catch (error) {
// Error retrieving data
}
}
Comme son nom l'indique, c'est asynchrone. Donc vous devez:
AsyncStorage.getItem('user')
.then((item) => {
if (item) {
// do the damage
}
});
Si nécessaire, vous pouvez jouer avec l'état local ou une bibliothèque de gestion d'état d'applications.
AsyncStorage est async ... vous devez donc l'appeler comme suit:
checkUserSignedIn(callback){
AsyncStorage.getItem('user', (err, result) => {
if (!err && result != null){
// do something
}
else {
// do something else
}
callback(result);
});
}