我有一个新人要做出反应/预演。我有一个从 API 获取天气预报的简单应用程序,我希望将此数据传递给图表组件(预图表)。我遇到的问题是当这个图表被渲染时,数据还没有被提取并且我得到类型错误,因为我已经在尝试处理它了。我看到另一个问题,其中最佳答案建议在尚未评估父组件的状态时有条件地将 null 而不是组件分配给变量。
在父组件中,我有以下方法设置要传递的状态(它由父组件的构造函数调用):
parseHourly = (parsed_json) => {
for (let i = 0; i < 7; i++) {
var h = parsed_json['hourly_forecast'][i]['FCTTIME']['hour'];
var t = parsed_json['hourly_forecast'][i]['temp']['metric'];
var pair = {hour: h, temperature: t};
this.state.temps.push(pair);
}
}
这是我创建图表的父级渲染方法:
render() {
let myChart;
if(this.state.temps) {
myChart = <Chart temps={this.state.temps}/>
} else {
myChart = null
}
return (
<div class={ style.container }>
...
{ myChart }
...
</div>
);
}
在 Chart 组件中,我尝试this.props.temps
直接在render()
方法中访问,但最终得到的值为undefined
. 我究竟做错了什么?非常感谢帮助。