6

Ich versuche zu überprüfen, ob ein Schlüssel in AsyncStorage mit AsyncStorage.getItem('key_name') verfügbar ist. Wenn der Schlüssel nicht vorhanden ist es nicht null zurückkehrt, kehrt es nach wie vor Gegenstand folgende Versprechen:Wie überprüft man, ob ein Schlüssel in AsyncStorage in React Native vorhanden ist? getItem() gibt immer ein Versprechen Objekt

Promise 
_45:0 
_54:null 
_65:null 
_81:1 

Meine Funktion für Daten zu erhalten ist als Gebrüll:

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

Wie kann ich überprüfen, ob ein Schlüssel vorhanden ist in AsyncStorage oder nicht?

Antwort

6
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 
    } 
} 
2

AsyncStorage ist async ... ja, müssen Sie es nennen diese Art und Weise:

checkUserSignedIn(callback){ 
    AsyncStorage.getItem('user', (err, result) => { 
    if (!err && result != null){ 
     // do something 
    } 
    else { 
     // do something else 
    } 
    callback(result); 
    }); 
} 
4

Wie der Name schon sagt, es ist async. Sie müssen also:

AsyncStorage.getItem('user') 
.then((item) => { 
    if (item) { 
     // do the damage 
    } 
}); 

Bei Bedarf können Sie entweder mit lokalen Status oder einige Application State Management-Bibliothek spielen.

Verwandte Themen