JSSアプリで接続されたGraphQLのトラブルシューティング
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
JSSアプリで接続されたGraphQLを使用すると、次の問題が発生する可能性があります。
コンポーネントは、型付きフラグメントを使用してクエリを実行するときにデータを受け取りません
テンプレートの型指定ベースのフラグメントを使用してクエリを実行する場合があります。例えば:
この場合、Apollo Clientでは、未加工のGraphQLレスポンスがvalueを返すが、JSSアプリはコンポーネントレベルでそれを受け取らないという状況が発生する可能性があります。Apollo Clientは、GraphQLデータのスマートキャッシュを保持しています。GraphQL型を効果的にキャッシュするには、GraphQL APIのスキーマに関する情報を知っている必要があります。Sitecoreテンプレートのリファクタリングに呼応してスキーマが変更されると、このデータは古くなり、スキーマ データが正しくないと不適切なキャッシュが発生する可能性があります。
スキーマ データを更新するには、jss graphql:updateを実行して、GraphQLエンドポイントから最新のスキーマ データを取得します。更新されたデータをソース管理にコミットする必要があります。
テンプレート名の競合
GraphQLでは、タイプとフィールドの名前は一意である必要がありますが、Sitecoreでは複数のテンプレートに同じ名前を付けることができます。厳密に型指定されたテンプレート フィールドと共に使用すると、Experience Edgeスキーマは 、最新の作成日のアイテムまたはフィールド アイテムに _{guid} を追加することで、名前の競合を処理します。