[英]how to login in react native?
我是反應原生的新手。 現在我正在開發一個登錄系統,在那里我獲得了用於登錄的 API 端點。 如果登錄有效,我需要獲取令牌。 有 2 個函數, login
發送請求 URL 並檢查響應狀態。 displayData
獲取令牌並將其顯示在屏幕上。
有一個觸發displayData
的按鈕組件,由於某種原因,我在警報窗口上得到的結果為空。 雖然我已經在loginEmail
和loginPass
的正文中輸入了值以確保有值,但我仍然收到此空消息。
任何建議,我將不勝感激。
登錄功能:
login (){
fetch("http://example/api/login", {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
loginEmail: 'khaled@gmail.com',
loginPass: 'khaled',
})
})
let token = responseData.token;
AsyncStorage.setItem('token',token)
.then((response) => response.json())
.then((response)=>{
if (response.status === 200){
console.log ("YOU'RE IN")
response.json();
} else if(response.status === 400){
console.log ("Something wrong")
}
})
.done();
}
顯示數據:
displayData = async () =>{
try {
let token = await AsyncStorage.getItem('token');
alert(token);
}
catch(error){
alert(error);
}
}
請使用同步和等待功能來獲取 api。
如果您在登錄 API 的響應中獲取令牌,那么您應該在該獲取請求的“then”中設置令牌。 為了更好地理解,我正在更新您的代碼。 請檢查。
login (){
fetch("http://example/api/login", {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
loginEmail: 'khaled@gmail.com',
loginPass: 'khaled',
})
})
.then((response) => response.json())
.then((response)=>{
if (response.status === 200){
console.log ("YOU'RE IN")
// Set the token here.
let token = response.token;
AsyncStorage.setItem('token',token)
response.json();
} else if(response.status === 400){
console.log ("Something wrong")
}
})
.done();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.