首页 > 解决方案 > 检查 AsyncStorage 中的现有密钥

问题描述

我想显示基于 AsyncStorage 的正确导航器,我在这里搜索但总是相同的结果:

 const signedIn = async () => {
    const token = await AsyncStorage.getItem('token');
    if(token) {
      return true;
    } else {
      return false;
    }
  }

它总是返回真..

标签: react-nativenavigationtokenasyncstorage

解决方案


signedIn 函数正在返回一个承诺。如果您正在调用如下所示的函数,那么每次我们都会导航到SCREEN1

let response = signedIn();
if(response){
   console.log("SCREEN1")
   //Navigate to SCREEN 1
 }else{
   console.log("SCREEN2")
   // Navigate to SCREEN 2
}

而不是你应该这样称呼它

signedIn().then((response)=>{
  if(response){
     console.log("SCREEN1")
     //Navigate to SCREEN 1
   }else{
     console.log("SCREEN2")
     // Navigate to SCREEN 2
  }
 })

或者这样{调用函数应该是异步的}

let response = await signedIn()
if(response){
   console.log("SCREEN1")
   //Navigate to SCREEN 1
}else{
   console.log("SCREEN2")
   // Navigate to SCREEN 2
}

推荐阅读