JavaScript class 没有被调用,什么也没发生

JavaScript class is not called and nothing happened

我对 JavaScript 很陌生。我试着用reactJS学了一个JavaScript。在这里,我正在尝试使用 API 开发一个天气应用程序。但这没有用。我能知道那个代码有什么问题吗?

class retrieveApi extends React.Component {
  constructor() {
    super();
    window.alert("here");
    this.state = {
      temp: "",
      ret: "",
    };
    var Http = new XMLHttpRequest();
    const url =
      "http://api.openweathermap.org/data/2.5/forecast?appid=API_KEY&q=california";
    Http.open("GET", url);
    Http.send();
    window.alert("here");
    Http.onreadystatechange = (e) => {
      if (Http.readyState == 4) {
        this.setState({
          ret: Http.responseText,
        });
        var obj = JSON.parse(this.state.ret);
        window.alert(obj.cod);
      }
    };
  }
  render() {
    return <p className="main-temp text-shadow">{this.state.temp}</p>;
  }
}

在我的 App() 函数中,我这样调用 class。

return <div>
<retrieveApi></retrieveApi>
</div>

我称其为 class 标签。那正确吗?在我尝试创建时钟之前,我使用了相同的时钟,所以我这样使用。如有不妥请指正

而且当我使用这些东西时,没有任何显示或变化。请帮助我!

我认为您没有导出 class retrieveApi。像这样导出您的 class:

export default retrieveApi;

首先确保您正在导出 retrieveApi class 并将其正确导入到您的应用程序组件中。假设您的应用程序组件是一个功能组件,这是呈现组件的正确方法:

return ( <div> <RetrieveApi></RetrieveApi></div> )

注意括号

也像上面提到的,确保将您的 class 组件大写。 变化:

class RetrieveApi

而不是

class retrieveApi

class 的名称应以大写字母开头。应该是 RetrieveApi.