首页 文章

如何获取div元素而不访问React中的DOM?

提问于
浏览
0

在我的反应应用程序中,我试图使用document.getElementByID(“id_of_div”)获取元素,使用innerHTML写入UI,如下面的代码所示 . 我正在使用反应并直接与DOM交互,这不是React的做事方式 . 请建议我如何更改此方法并将我的数据写入作为对象存储在反应中的UI . 提前致谢 .

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对象推送到UI的反应方式是什么?

1 回答

  • 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

相关问题