こんな方におすすめ
- Uncaught (in promise) TypeError: Cannot read property '_embedded' of undefinedエラーで困っている方
- axiosを使おうとしている方
結論:プロパティの階層をしっかり把握できていないがためのミス
今回のミスはデータのある「プロパティ(ファイル)」の階層を把握していなかったためにおきました。
順を追って説明します。
_embeddedはどこにあるのか
今回エラーが起きていた段階でのコードはこれ。
この時のエラーはこれ。
問題は「_embedded」がどこにあるかということ。
今回僕はなぜか取り出したいデータが
body>_embedded>message>データ
という構造で入っていると思っていました。
しかし何をしても_embedded が見つからないエラーが出てくる。。
困り果てた末にTwitterで呟いてみました。
すると、resから一つ一つデータを取り出すログを出してみることを提案してくださった方がいました。
(res→res.body→res.body._embedded→res.body._embedded.message)
な、なるほど、、
実際にログを複数出してみたのが以下のコードです。
上記コードで実行してみた結果のコンソール画面がこれ!
ということで
bodyを全てdataに書き換えました。
その結果、、、うまくいきました!
思い込みってよくないですね。何か不具合が会ったときにログを出す大切さを知りました。