2017-08-09 81 views
0
const ACCESS_TOKEN = 'auth_token'; 

    var api = { 

    async removeToken(){ 
     try { 
      await AsyncStorage.removeItem(ACCESS_TOKEN); 
      this.getToken(ACCESS_TOKEN); 
     } catch (error) { 
      console.log("something went wrong remove token") 
     } 
    }, 

    async storeToken(accessToken){ 
     try { 
      await AsyncStorage.setItem(ACCESS_TOKEN, accessToken); 
      this.getToken(ACCESS_TOKEN); 
     } catch (error) { 
      console.log("something went wrong store token") 
     } 
    }, 

    async getToken(){ 
     try { 
      let token = await AsyncStorage.getItem(ACCESS_TOKEN); 
      var parsedToken = JSON.parse(token).auth_token; 
      console.log("getToken: " + parsedToken); 
      return parsedToken; 
     } catch (error) { 
      console.log("something went wrong gettoken") 
      return null; 
     } 
    }, 

    getTasks(){ 
     var url = "http://doit.unicrow.com/api/v1/tasks/"; 
     return fetch(url, { 
      method: 'GET', 
      headers: { 
       'Authorization': "Token" + this.getToken() 
      } 
     }).then(response => response.json()) 
    } 
} 

module.exports = api; 

大家好,我正在做一個反應js的項目,我遇到了問題。在getTasks方法的上述代碼片段中,我想調用從getToken方法返回的標記值。使用「this」我無法做到這一點。我該怎麼做?提前致謝。React js - 從另一種方法調用方法

回答

1

您可以通過使用狀態

保持本地狀態做得一樣

{ 令牌: 「」 } 設置狀態標記爲

async getToken(){ 
     try { 
      let token = await AsyncStorage.getItem(ACCESS_TOKEN); 
      var parsedToken = JSON.parse(token).auth_token; 
      console.log("getToken: " + parsedToken); 
      // return parsedToken; 
this.setState({ 
token:parsedToken 
}) 
     } catch (error) { 
      console.log("something went wrong gettoken") 
      return null; 
     } 
    }, 

,並在您getTasks方法從狀態訪問它作爲

getTasks(){ 
     var url = "http://doit.unicrow.com/api/v1/tasks/"; 
     return fetch(url, { 
      method: 'GET', 
      headers: { 
       'Authorization': "Token" + this.state.token 
      } 
     }).then(response => response.json()) 
    } 
} 
+0

謝謝 人。它的工作:) – eddasahin61

+0

很高興幫助你:) –

相關問題