2017-08-23 59 views
0

這就是我的登錄函數在我的反應原生應用程序中的樣子。如您所見,有一個用於API調用的URL,現在是localhost。在製作時,必須有高效的網址。React Native:在開發和生產模式下獲取API URL

如何以編程方式執行此操作?當我想上的代碼開發,而不改變URL所有的時間...

async function login (username, password) { 
    try { 
    await sleep(2000) 
    let response = await fetch('http://localhost:4000/login', { 
     method: 'POST', 
     headers: { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json' 
     }, 
     body: JSON.stringify({ 
     username, 
     password 
     }) 
    }) 
    let responseJson = response.json() 
    return responseJson 
    } catch (error) { 
    Alert.alert('Error', 'Could not login') 
    } 
} 

回答

0

你應該能夠基於在視察process.env.NODE_ENV環境PARAM並設置URI:

const uriBase = process.env.NODE_ENV === 'development' 
    ? 'http://localhost:4000' 
    : 'https://productionURL' 

let response = await fetch(`${uriBase}/login`, { ... 
1

簡單的答案是使用:

let url = __DEV__ ? 'http://dev.url.com' : 'https://prod.url.com'; 

https://facebook.github.io/react/contributing/codebase-overview.html

可以在代碼庫中使用__DEV__僞全局變量來防止僅限開發的代碼塊。

它在編譯步驟中被內聯,並在CommonJS構建中變成process.env.NODE_ENV!=='生產'檢查。

對於獨立構建,它在未構建的構建中成爲真實,並且在構建精簡構建中使用if保護塊完全剝離。

對於更高級的配置,我使用react-native-config

+1

Rob M.的答案有什麼區別?編輯回答 – user3142695

+0

來解釋差異 – pwcremin

相關問題