React-native:如何检查它是否是用户的第一个连接?

时间:2019-11-29 12:41:38

标签: react-native expo

我是本机反应的新手,我想使用 1-用户从未登录过该应用程序,我将向该应用程序展示一些幻灯片+转到注册页面 2-用户已经在=>中直接进入用户页面 3-用户已经进入,但ID不正确

您能指导我完成它吗?

首先,我真的不知道如何检查用户是否存在于数据库中

对于第二点和第三点,我认为我会尝试:

onPressLogin(){
 fetch('linktomyAPI',{
     method: 'POST',
     headers:{
             'Content-Type' : 'application/json',
             'Accept':'application/json'
         },
         body: JSON.stringify({
             username:this.state.username,
             password: this.state.password,
         })
 })
 .then(response => response.json())
 .then((responseData) =>{
     if(responseData.error !== 1){ // verify the success case, as you didn't provide the success case i am using the error code
         this.setState({ // its recommended you verify the json before setting it to state.
             userdetail: responseData,
         })
         setTimeout(() => {
             Actions.Authentication();
         }, 2300);
         AsyncStorage.setItem('username', this.state.username); // its setItem not saveitem.
     } else {
         console.log(responseData);
         Alert.alert(JSON.stringify(responseData)); // Alerts doesn't allow arrays or JSONs, so stringify them to view in Alerts
     }
 }).catch((error) => {
     // handle catch
     console.log("error:"+JSON.stringify(error));
 });
 }

您认为我可以这样做吗,相关吗?

感谢您抽出宝贵的时间回答我。我真的很新,所以我需要帮助和解释。谢谢 !!! :)

1 个答案:

答案 0 :(得分:0)

您可以使用UserInfo进行操作。首先,您已将用户信息保存在内存中,使用Session js,并在设备本地文件中使用AsyncStore。您已经使用AsyncStore做到了。

首先将用户信息保存到会话中,会话结构为:{id:"dd333",name:"john"}

...
setTimeout(() => {
             Actions.Authentication();
         }, 2300);
        Session.id = res.id;
        Session.name = res.name;
        AsyncStorage.setItem('userinfo', Json.stringfy(res));

然后您可以显示不同的页面和条件。

// in the component which you want compoentDidMount
componentDidMount() {
 // here you can try to get it from AsyncStore if the Session is null.
 // then hanle it as the followng
if(Session.id == ""){
  //default it is "", it means the user does not login
} else if(Session.id != "222"){
  // the user id is not correct

} else {
  // here is the user login and id is correct

}
}