簡體   English   中英

如何登錄本機反應?

[英]how to login in react native?

我是反應原生的新手。 現在我正在開發一個登錄系統,在那里我獲得了用於登錄的 API 端點。 如果登錄有效,我需要獲取令牌。 有 2 個函數, login發送請求 URL 並檢查響應狀態。 displayData獲取令牌並將其顯示在屏幕上。

有一個觸發displayData的按鈕組件,由於某種原因,我在警報窗口上得到的結果為空。 雖然我已經在loginEmailloginPass的正文中輸入了值以確保有值,但我仍然收到此空消息。

警報訊息

任何建議,我將不勝感激。

登錄功能:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM