JSSアプリで接続されたGraphQLのトラブルシューティング

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

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

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

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

item {

AppRoute is a Sitecore Template-based GraphQL type

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

...on AppRoute { pageTitle { value } } }

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

スキーマデータを更新するには、GraphQLエンドポイントから最新のスキーマデータを取得するためにjss graphql

。更新されたデータはソースコントロールにコミットしなければなりません。

テンプレート名の衝突

GraphQLでは、型やフィールドの名前は一意でなければなりませんが、Sitecoreは複数のテンプレートが同じ名前を持つことを許可します。強力型テンプレートフィールドと組み合わせて使用する場合、Experience Edgeスキーマは 項目やフィールドアイテムに最新の作成日の _{guid} を付け加えることで衝突判定を処理します。

この記事を改善するための提案がある場合は、 お知らせください!