6

Bir anahtarın AsyncStorage içinde AsyncStorage.getItem('key_name') ile mevcut olup olmadığını kontrol etmeye çalışıyorum. veri almak için My fonksiyonu olarak feryat AsyncStorage'da React Native'da bir anahtarın var olup olmadığını nasıl kontrol edebilirim? getItem() her zaman bir vaat nesnesini döndürür

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

olduğunu

:

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

Ben anahtar var olup olmadığını kontrol edebilirsiniz Nasıl anahtarı boş dönmüyor mevcut değilse, yine de söz nesne takip döndürür AsyncStorage'da değil mi? o zaman uyumsuz olduğunu, Adından da anlaşılacağı gibi

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

cevap

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 Bunu bu şekilde çağırmanız gerekir, zaman uyumsuz ... yani. Bu nedenle:

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

Gerekirse, yerel durum veya bazı uygulama durumu yönetimi kitaplığı ile oynayabilirsiniz.