質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

GraphQL

GraphQL は、アプリケーション・プログラミング・インタフェース (API) 向けのクエリ言語およびサーバーサイドランタイムです。APIの速度、柔軟性、開発者にとっての使いやすさを向上させるために設計され、データを複数のデータソースから取得するリクエストを1つのAPI呼び出しで構成できます。

Shopify

Shopifyとは、ECサイト向けのプラットフォームを提供している企業。さらに、その企業が提供するオンラインストアやPOSシステムを指します。高いデザイン性とカスタマイズ性が評価され、世界各国のネットショップで使用されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

1272閲覧

GraphQLで取り出したAPIデータをJavaScriptのconsole.logで表示させるときの記述方法を教えてください。

echizeyayota

総合スコア106

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

GraphQL

GraphQL は、アプリケーション・プログラミング・インタフェース (API) 向けのクエリ言語およびサーバーサイドランタイムです。APIの速度、柔軟性、開発者にとっての使いやすさを向上させるために設計され、データを複数のデータソースから取得するリクエストを1つのAPI呼び出しで構成できます。

Shopify

Shopifyとは、ECサイト向けのプラットフォームを提供している企業。さらに、その企業が提供するオンラインストアやPOSシステムを指します。高いデザイン性とカスタマイズ性が評価され、世界各国のネットショップで使用されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

1クリップ

投稿2021/10/20 07:37

【質問の主旨】

GraphQLで取り出したAPIデータをJavaScriptのconsole.logで出力させるときの記述方法を教えてください。

【質問の補足】

1. 出力させたいデータについて

出力させたいデータとは、具体的にShopifyストアの中で取り扱っているある商品の価格であるpriceのプロパティ値です。

イメージ説明

上記のスクリーンショットの中においてピンク色で囲った部分です。なお、このmutationはアプリを構成しているファイルの1つであるProductUpdate.jsの中で定義しています。

2. 自分で考えたpriceを出力するための表現方法

index.jsの37行目38行目で自分なりに、商品の価格を記述するためのpriceの表現を考えてみましたが、
いずれの場合も下記のエラーが出力されます。

console.log(data.variants.edges[0].node.price); // 37行目 console.log(products.variants.edges[0].node.price); // 38行目 Unhandled Runtime Error TypeError: Cannot read properties of undefined (reading 'edges')

3. console.log(data)の内容について

下記のスクリーンショットはindex.jsの40行目で、console.log(data) を挿入したときの出力結果です。

イメージ説明


以上、ご確認をよろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

dataの出力結果を素直に見る限りdata.productUpdate.product.variants.edges[0].node.priceで良いと思いますがいかがでしょうか?

TypeError: Cannot read properties of undefined (reading 'edges')

上記エラーは「edgesのreadをしようとしたけど対象がundefinedだった」ということなので、data.variantsundefinedになっています。dataの出力結果ではdata.variantsは存在しないので当然の動作に見えます。

追記

.then((data) =>で受け取るdatadata:{data:{...},extensions:{...}なのでdata.data.productUpdate.....かもしれません。

投稿2021/10/20 13:22

編集2021/10/21 04:44
k4a

総合スコア983

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

echizeyayota

2021/10/21 04:38

k4a さん。 コメントありがとうございます。 console.log(data.productUpdate.product.variants.edges[0].node.price) を実行すると、下記のエラーが表示されます。 Unhandled Runtime Error TypeError: Cannot read properties of undefined (reading 'product') このエラーによると、product が定義されていないということなので、 console.log(data.productUpdate.variants.edges[0].node.price) productの部分を削って実行しても Unhandled Runtime Error TypeError: Cannot read properties of undefined (reading 'variants') 同じようなエラーが出ます。このあとvariants, edges[0], node を削っても Unhandled Runtime Error TypeError: Cannot read properties of undefined (reading '...') という感じで同じようなエラーが表示されます。 最後に console.log(data.productUpdate); を実行すると、undefined が返ってきます
echizeyayota

2021/10/21 04:57

k4a さん。 たびたびのコメントありがとうございます。 console.log(data.data.productUpdate.product.variants.edges[0].node.price); とすると、商品の価格を出力させることができました。 助かりました!今後ともどうぞよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問