使用Gatsby+Contentful+GraphQL时遇到了重复获取数据的问题,导致陷入困境

在使用Gatsby+Contentful+GraphQL进行网站开发时遇到了一些困难,所以我在这里做个笔记。

状态

    • Contentful側ではデータは1件

 

    GraphQLで取得するとデータが重複して取得される

每个状态的感觉如下。

只需要一种选择,对以下内容进行汉语重述:
Contentful方面的数据记录为1条。

这个列表上看起来只有一项。

スクリーンショット 2020-10-18 10.09.11.png

当使用GraphQL进行获取时,数据会出现重复获取的情况。

使用GraphQL查询可以获取到2个结果。

スクリーンショット 2020-10-18 10.10.28.png

导致这一情况的因素是什么?

原因是Contentful的Locale设置。
→如果您默认创建账户,我认为会设置多个Locale(※截至2020年10月16日)。

スクリーンショット 2020-10-18 10.11.56.jpg

使用GraphQL可以获取Locale信息

确认我们已成功获取到英语(en-US)和德语(de-DE)的信息。

スクリーンショット 2020-10-18 10.23.35.png

处理

    更改Contentful的设置以调整Qurey(通过语言进行过滤)。

查询调整(通过语言进行筛选)

当然会合并成一件。

スクリーンショット 2020-10-18 10.38.02.png

Contentful设置的更改

只启用必需的语言。
→这次我们将禁用德语(de-DE)。

スクリーンショット 2020-10-18 10.39.43.jpg
スクリーンショット 2020-10-18 10.41.00.png

添加 test2 并确认。
→ test2 的设置未生效,未创建德语内容。
→ 已创建的内容需要在内容管理页面进行额外修改。

スクリーンショット 2020-10-18 10.44.03.png

这个事情,一开始让我有点迷惑,但是如果想要保存多个区域设置的话,这会非常有用呢。

广告
将在 10 秒后关闭
bannerAds