我是本机反应的新手,我想使用 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));
});
}
您认为我可以这样做吗,相关吗?
感谢您抽出宝贵的时间回答我。我真的很新,所以我需要帮助和解释。谢谢 !!! :)
答案 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
}
}