前提・実現したいこと
【実現したいこと】
apiで取得したデータを最初のマウント時に表示したい。
発生している問題・エラーメッセージ
【発生している問題】
{monster.name}を削除して実行して開発者ツールを開くと確かにデータは取得できていて、その状態で{monster.name}を記載すると表示がされた。
おそらくuseEffectが実行される前にJSXの部分を表示しようとしてまだデータがないためエラーが出てるのではないか??
原因、解決方法わかる方いましたらご回答の方よろしくお願いいたします。
【エラーメッセージ】
TypeError: Cannot read property 'name' of undefined
const [monster,setState] = useState(); const getMonster = async () => { await axios.get(`https://pokeapi.co/api/v2/pokemon-form/${id}`) .then(response => { setState(response.data); }) } useEffect(() => { getMonster() },[]); return( <Grid> <Card className={classes.root}> <CardActionArea> <CardMedia className={classes.media} /> <CardContent> <Typography gutterBottom variant="h5" component="h2"> {monster.name} </Typography> </CardContent> </CardActionArea> </Card> </Grid> )
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/30 01:05
2021/07/30 01:07
2021/07/30 01:12