查询中包含变量的 Gatsby 源代码

Gatsby Source Contentful with Variable in Query

我正在我的 Gatsby 网站上创建一些登陆页面,并希望列出来自特定内容类型的节点。例如,我有:

allContentfulSongs
allContentfulBlogs

在我的着陆页模板中,如何动态查询歌曲或博客?我试过了:

all${landingPage} {
    edges {
      node {
       id
     }
   }
}

但我遇到语法错误。有没有办法在 Gatsby 中做到这一点,或者我应该只使用

  @include(if: $landingPage) 

对于我查询中的每个内容类型?

您不能使用 "dynamic" GraphQL 查询。因此,您不能在 Gatsby 中使用 javascript 变量作为查询名称的一部分。

查询被特殊处理。这就是 Gatsby 静态编译数据的方式。动态生成的查询将更难(或可能不可能)缓存,因此 pageQuery 不允许。