---
title: "JSSアプリで接続されたGraphQLのトラブルシューティング"
slug: "troubleshooting-connected-graphql-in-jss-apps"
abstract: "接続型GraphQL使用時の一般的な問題の対処"
---
# JSSアプリで接続されたGraphQLのトラブルシューティング

JSSアプリで接続されたGraphQLを使用すると、以下の問題に直面する可能性があります:

## タイプ付きフラグメントを用いてクエリしても、コンポーネントはデータを受け取りません

テンプレート型付けに基づくフラグメントを使ってクエリを実行することがあります。例えば:

item {
 # AppRoute is a Sitecore Template-based GraphQL type
 ...on AppRoute {
 pageTitle {
 value
 }
 }
}

この場合、Apollo Clientで生のGraphQL応答がvalueを返すのに、JSSアプリはコンポーネントレベルでそれを受信しない状況に遭遇するかもしれません。Apollo ClientはGraphQLデータのスマートキャッシュを維持しています。タイプGraphQL効果的にキャッシュするには、GraphQL APIのスキーマについて何らかの情報を知っている必要があります。スキーマが変更されると、例えばSitecoreテンプレートのリファクタリングに応じて変更されると、このデータは古くなり、誤ったスキーマデータだとキャッシュが不適切になることがあります。

スキーマデータを更新するには、GraphQLエンドポイントから最新のスキーマデータを取得するためにjss graphql:updateを実行してください。更新されたデータはソースコントロールにコミットしなければなりません。

## テンプレート名の衝突

GraphQLでは、型やフィールドの名前は一意でなければなりませんが、Sitecoreは複数のテンプレートが同じ名前を持つことを許可します。強力型テンプレートフィールドと組み合わせて使用する場合、[Experience Edgeスキーマは](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/the-experience-edge-schema.html "The Experience Edge schema") 項目やフィールドアイテムに最新の作成日の \_{guid} を付け加えることで衝突判定を処理します。