プログラミング

Uncaught (in promise) TypeError: Cannot read property '_embedded' of undefinedを解決した話

投稿日:

あなた
コンソールにUncaught (in promise) TypeError: Cannot read property '_embedded' of undefinedというエラーが出てきてます。。
僕も苦しんだよ!解決方法を紹介していくね
てんし君

 

こんな方におすすめ

  • 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)

な、なるほど、、

実際にログを複数出してみたのが以下のコードです。

上記コードで実行してみた結果のコンソール画面がこれ!

てんし君
え、_embeddedってdataのなかに入ってね??

ということで

bodyを全てdataに書き換えました。

その結果、、、うまくいきました!

思い込みってよくないですね。何か不具合が会ったときにログを出す大切さを知りました。

その他プログラミングスクールに関する情報

-プログラミング
-,

Copyright© エンジニアてんし君ブログ , 2020 All Rights Reserved.