我在对 codepen 做出反应时遇到的另一个奇怪的错误。
我正在尝试将 api 响应呈现为 a<h2>
但不知何故我无法呈现每个属性。
render: function () {
return (
<div className="weather-card">
<h1>Weather For:</h1>
<h2>{this.state.data.name}, {this.state.data.sys.country}</h2>
<h2>{this.state.data.main.temp}</h2>
<h2>{this.state.data.weather[0].main}</h2>
</div>
)
}
仅渲染this.state.data.name
是没有问题的,例如,但如果它是一个更深的对象,它会显示“未捕获的类型错误:无法读取未定义的属性‘国家’”......
但我可以将这个完全相同的属性记录到控制台。
任何人的想法?
这里也是codepen:http ://codepen.io/rasmus/pen/aNGRJm
编辑:我通过将不同的属性分配为它们自己的状态属性来使其工作,如下所示:
success: (data) => {
self.setState({
city: data.name,
temp: data.main.temp,
weather: data.weather[0].main,
isLoading: false
});
console.log(self.state.data.main.temp)
},
但这有点hacky...