Reactjs 尝试在react无状态类组件中使用函数
我正在尝试建立一个天气反应应用程序。我正在使用OpenWeatherMapAPI。 我有一个组件,应该渲染5个天气组件,每个组件对应一天(这是一个5天的天气预报)。 然而,有些东西不起作用。 这是天气部分:Reactjs 尝试在react无状态类组件中使用函数,reactjs,Reactjs,我正在尝试建立一个天气反应应用程序。我正在使用OpenWeatherMapAPI。 我有一个组件,应该渲染5个天气组件,每个组件对应一天(这是一个5天的天气预报)。 然而,有些东西不起作用。 这是天气部分: class Weather extends Component{ getAllDates = () =>{ const list = this.props.list; let date = list[0]["dt_txt"].split(" ")[0]; co
class Weather extends Component{
getAllDates = () =>{
const list = this.props.list;
let date = list[0]["dt_txt"].split(" ")[0];
const datesList = [{date: date, indexes: [0]}];
let indexes = [];
for(let i = 1; i < list.length; i++){
const currDate = list[i]["dt_txt"].split(" ")[0];
if(date !== currDate){
datesList.push({
date: currDate,
indexes: indexes});
date = currDate;
indexes = [];
}
else{
const toUpdate = datesList.pop();
const oldIndexes = toUpdate.indexes;
const newIndexes = oldIndexes.push(i);
toUpdate.indexes = newIndexes;
datesList.push(toUpdate);
}
}
return datesList;
}
render(){
const datesList = this.getAllDates();
return(
<React.Fragment>
{datesList.map((date, key) => {
return <DayWeather date = {date}
key = {key}
forecastList = {this.props.list} />
})}
</React.Fragment>
)
}
查看您在哪里设置
列表
状态也会很有帮助。您可以将其添加到帖子中,而不是添加注释吗?谢谢是的,我加了:)有没有可能onSelectHandler
运行了两次?你可以在这个方法的顶部尝试控制台日志记录/计数,只是为了检查一下。嗯,没有什么东西向我跳出来。完整地查看代码会很有帮助;有没有可能用代码创建一个代码沙盒或其他东西?您可以只返回一些示例数据,而不是执行实际的API查询
{this.state.data === undefined ? <h1>Choose City</h1> :
<Weather list = {this.state.data.list}/>}
class App extends Component{
constructor(){
super();
this.state = {
data: undefined
}
}
onSelectHandler = (event) =>{
const city = event.target.value;
const apiCall = `http://api.openweathermap.org/data/2.5/forecast?q=${city},il&APPID=${API_KEY}`
fetch(apiCall)
.then(response => response.json())
.then(response =>
{
this.setState({
data: response
})
}
)
}