我正在尝试将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>
}
答案 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>
)
})
}
}