Gatsby+Contentful+GraphQLの構成でサイト作成をしていた際に、少しハマったのでメモしておきます。
状態
- Contentful側ではデータは1件
- GraphQLで取得するとデータが重複して取得される
それぞれの状態はこんな感じです。
Contentful側ではデータは1件
一覧の見た目上は一件です。
GraphQLで取得するとデータが重複して取得される
GraphQLで取得すると2件取れます...
原因
原因は、Contentful側のLocale設定でした。
→デフォルトでアカウント作成すると、複数Locale設定されていると思います(※2020/10/16現在)。
GraphQLでLocaleも取得する
英語(en-US)とドイツ語(de-DE)が取得できていることが確認できました。
対処
- Qureyの調整(言語でフィルターする)
- Contentful側の設定変更
Qureyの調整(言語でフィルターする)
当然1件になります。
Contentful側の設定変更
必要な言語のみEnableにします。
→今回はドイツ語(de-DE)をDisableにします。
test2を追加して、確認します。
→test2は設定が反映されて、ドイツ語のコンテンツが作成されていません。
→作成済のコンテンツはContent管理画面で別途修正する必要があります。
本事象、暫く困惑しましたが、複数Locale保存したい場合は役に立ちますね。