反应列表未呈现更新的状态数据

时间:2020-10-24 22:28:47

标签: reactjs mapping

我正在尝试将api调用中的一些更新数据呈现为项目列表,但是我的map函数没有输出任何内容?我没有收到任何错误,我的代码只是没有从inputNode()内的地图中返回任何内容

我也许从某个不正确的范围调用了该函数?我测试了条件,并且在没有map()的情况下可以正常工作

希望有人可以在这里教育我;)

inputNode = () => {  
          
          if(this.state.weatherData === null) {
            return(
              <div>
                nothing here
              </div>
            )
          }else{
          
           this.state.weatherData.map((period, index)=>{
              return(
                <div key={index}>
                  <p>{period.name}</p>
                  <h3>forecast</h3>
                  <p>{period.shortForecast}</p>
                  <p>{period.temperature}</p>
                  <p>from {period.startTime} to {period.endTime}</p>
                </div>
                )
              })
            }         
          }


 render() {  
            return <div className={styles.container}>{this.inputNode()}</div> 
           }

1 个答案:

答案 0 :(得分:1)

我相信问题是您忘记了在else块中返回map函数的结果:

inputNode = () => {  
          
          if(this.state.weatherData === null) {
            return(
              <div>
                nothing here
              </div>
            )
          }else{
          
           return this.state.weatherData.map((period, index)=>{ // add return here
              return(
                <div key={index}>
                  <p>{period.name}</p>
                  <h3>forecast</h3>
                  <p>{period.shortForecast}</p>
                  <p>{period.temperature}</p>
                  <p>from {period.startTime} to {period.endTime}</p>
                </div>
                )
              })
            }         
          }