我正在对google fonts api进行ajax调用,并从那里接收项目列表。我在componentDidMount方法中调用ajax调用。
后来,我有了一个方法,可以为我从ajax请求中收到的字体呈现一个选项字段。我不确定我做错了什么。
componentDidMount() {
axios.get(URL)
.then((data) => {
console.log("data" + data);
this.setState({
googleFonts: data
})
})
.catch((err) => {
console.log(err);
this.setState({
errors: err
})
})
}
下面是我呈现选项的地方
renderFonts() {
let data = this.state.googleFonts.data.items;
return data.map((font, index) => {
return (
<option>{font.family}</option>
)
})
}
下面是我调用返回选项的方法的地方
<FormControl
style={inputFieldStyle}
componentClass="select"
placeholder="select"
>
{this.renderFonts()}
</FormControl>
我得到的错误是数据没有明确地定义为this.state.googleFonts.data.items。我认为这与我的componentDidMount ajax调用的竞争条件以及在此之前调用的方法有关。我做错了什么?
https://stackoverflow.com/questions/47823604
复制相似问题