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.
我对 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.