私は、ajaxを呼び出して、Googleフォントのapiを呼び出し、そこからアイテムのリストを受け取っています。私は私のcomponentDidMountメソッドの中で私のajax呼び出しを呼び出しています。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
})
})
}
私は私のオプションをレンダリングところ、私は私が取得していますエラーは、データが定義されていないということです
<FormControl
style={inputFieldStyle}
componentClass="select"
placeholder="select"
>
{this.renderFonts()}
</FormControl>
オプションを返す私のメソッドを呼び出すのはここ
renderFonts() {
let data = this.state.googleFonts.data.items;
return data.map((font, index) => {
return (
<option>{font.family}</option>
)
})
}
があります具体的にthis.state.googleFonts.data.items。私は、それが私のcomponentDidMount ajax呼び出しの競合状態と、その前に呼び出されているメソッドと関係していると思います。私は間違って何をしていますか?
あなたのコードの潜在的な問題に注目しました。あなたは 'renderFonts'の最初に' console.log(this.state) 'を実行できますか?何が印刷されますか? – Max