【问题标题】:DynamicZone: Field "micro_article_container" of type "[StrapiArticleMicro_article_container]" must have a selection of subfieldsDynamicZone:“[StrapiArticleMicro_article_container]”类型的字段“micro_article_container”必须有一个子字段选择
【发布时间】:2022-01-04 16:05:31
【问题描述】:

问题

当我在我的项目上运行 gatsby build 时会引发此错误:

Field "micro_article_container" of type "[StrapiArticleMicro_article_container]" must have a selection of subfields. Did you mean "micro_article_container { ... }"?

我的设置

我正在运行一个带有 Graphql 插件和一个 gatsby 前端的 strapi (v3.6.8) 实例。 articletype 有一个动态区域 (micro_article_container),其中填充了组件 micro_article

什么时候出现错误?

要从我的strapi Graphql API 中获取数据,我运行以下查询:

query MyQuery2($article: String) {
    strapiArticle(title: {eq: $article}) {
        id
        title
        published_at(formatString: "DD.MMMM.YYYY", fromNow: false)
        micro_article_container
    }
}

该查询确实在提供的 graphql 游乐场中工作。在盖茨比的开发模式下,机器也没有问题。 只有当我尝试通过gatsby build 构建 gatsby 项目时,才会收到上面写的错误。

起初我以为我可以修改查询,以便 micro_article_container 有缺少的子文件:

query MyQuery2($article: String) {
    strapiArticle(title: {eq: $article}) {
        id
        title
        published_at(formatString: "DD.MMMM.YYYY", fromNow: false)
        micro_article_container{
            title
        }
    }
}

这也不起作用并引发以下错误:

Field "micro_article_container" must not have a selection since type "JSON" has no subfields.

我可以说我不能为 micro_article_container 提供子字段,因为它是一个对象数组,并且具有在 graphql 游乐场中显示的 JSON 类型。但是,如果我不添加子字段,为什么会引发错误:D

因为这是我第一次使用strapi 的动态区域,所以我无法弄清楚我的查询出了什么问题。此外,我对它在开发模式下工作感到困惑,但如果我想构建它会抛出错误。

【问题讨论】:

    标签: graphql gatsby strapi


    【解决方案1】:

    这似乎是一个已知的错误:

    显然,已在此 pull-request 中修复,因此目前没有“确定的”解决方案。

    在此期间你可以做的是:

    • 更新到 Gatsby 4(至少 4.3.0-next.1
    • 降级到 Gatsby 3
    • 在未合并到 Strapi 版本时安装前叉:
      npm install marceligrabowski/gatsby-source-strapi#v4_prepublish
      

    【讨论】:

      猜你喜欢
      • 2019-10-02
      • 2019-05-23
      • 2021-01-09
      • 2016-06-12
      • 2011-02-26
      • 1970-01-01
      相关资源
      最近更新 更多