2016-08-16 81 views
0

在我的反應應用程序中,我試圖使用document.getElementByID(「id_of_div」)來讀取使用innerHTML寫入UI的元素,如下面的代碼所示。我正在使用反應並直接與DOM進行交互,這不是React的做事方式。請建議我如何改變這種方法並寫入我的數據,並將其作爲對象存儲爲反應中的UI。 在此先感謝。如何在不訪問React的情況下獲取div元素?

var uname = this.state.appuser; 
    axios.get(url).then(function(response) { 
     var display_city = response.data.data.request[0].query; 
     var Date1 = response.data.data.weather[0].date; 
     var windSpeed = response.data.data.current_condition[0].windspeedKmph; 
     var maxTempC = response.data.data.weather[0].maxtempC; 
     var minTempC = response.data.data.weather[0].mintempC; 
     var humidity = response.data.data.current_condition[0].humidity; 
     var visibility1 = response.data.data.current_condition[0].visibility; 
     var myobj = { 
      welcome_user: uname, 
      disp_city: display_city, 
      date: Date1, 
      wind_speed: windSpeed, 
      maxtempC: maxTempC, 
      mintempC: minTempC, 
      humid: humidity, 
      visibility: visibility1 
     } 
     console.log(myobj); 
     document.getElementById("welcome").innerHTML = "Welcome " + myobj.welcome_user; 
     document.getElementById("cityHolder").innerHTML = myobj.disp_city; 
     document.getElementById("date").innerHTML = myobj.date; 
     document.getElementById("windspeed").innerHTML = myobj.wind_speed + " kmph"; 
     document.getElementById("maxtemp").innerHTML = myobj.maxtempC + " C"; 
     document.getElementById("mintemp").innerHTML = myobj.mintempC + " C"; 
     document.getElementById("humidity").innerHTML = myobj.humid + " %"; 
     document.getElementById("visibility").innerHTML = myobj.visibility + "%"; 

    }).catch(function(error) { 
     console.log(error); 
    }); 

}, 

我不想通過的document.getElementById訪問另一個組件定義的內部元素(「DIVID」) 什麼反應從MyObj中物體推着我的數據到用戶界面的方法是什麼?

回答

0

我剛剛開始學習反應,但我認爲從閱讀文檔可以使用下面的內容。

// tutorial1.js 
var CommentBox = React.createClass({ 
    render: function() { 
    return (
     <div className="commentBox"> 
     Hello, world! I am a CommentBox. 
     </div> 
    ); 
    } 
}); 
ReactDOM.render(
    <CommentBox />, 
    document.getElementById('content') 
); 

Documentation Here

相關問題