2017-05-07 66 views
0

我使用這段代碼來異步使用React-Native發出請求,但似乎沒有得到它。該請求已經單獨測試,數據應該是有效的。反應原生異步請求

var data = [{name: 'simon'}]; 
    const req = new XMLHttpRequest(); 
    req.open('GET', testedValidUrl, true); 
    req.send(); 

    req.onreadystatechange = processRequest; 
    var name =""; 
    function processRequest(e) { 
     if(req.readyState == 4 && req.status == 200){ 
     var response = JSON.parse(req.responseText); 
     data[0].name = response.name; 
     } 
     // setTimeout(()=>{},1000); 
    } 

我想,也許是因爲同意的,並且在實際應用中的大陣花費較少的時間來構建,而不是從服務器獲取數據。添加setTimeout()並沒有解決它。

+0

fetch api更好選項https://facebook.github.io/react-native/docs/network.html –

+0

您在發送請求後設置事件偵聽器。 –

回答

0
var data = [{name: 'simon'}]; 
    const req = new XMLHttpRequest(); 
    function processRequest(e) { 
     if(req.readyState == 4 && req.status == 200){ 
     var response = JSON.parse(req.responseText); 
     data[0].name = response.name; 
    } 
    req.onreadystatechange = processRequest; 
    req.open('GET', testedValidUrl, true); 
    req.send(); 
    var name =""; 

如果設置了事件處理程序,(onreadystatechange的)發送/打開請求後,readyState的已經改變,因此它不會被調用。