我试图将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>
}
我认为问题是您忘记在else块中返回映射函数的结果:
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>
)
})
}
}