Reactjs 尝试在react无状态类组件中使用函数

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

我正在尝试建立一个天气反应应用程序。我正在使用OpenWeatherMapAPI。 我有一个组件,应该渲染5个天气组件,每个组件对应一天(这是一个5天的天气预报)。 然而,有些东西不起作用。 这是天气部分:

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
      })
    }
  )

  }