Gatsby 盖茨比-如何将变量传递给pageQuery

Gatsby 盖茨比-如何将变量传递给pageQuery,gatsby,Gatsby,我有和中相同的问题,但由于某种原因,解决方案对我不起作用 模板内部的console.log显示正确传递到组件的数据和pageContext是{cat:“cat Name”,limit:10},但查询结果返回的项目的类别与应用的过滤器不同。相同的查询工作正常,并返回GraphiQL资源管理器中的筛选列表 我的模板组件: const Page: FC<unknown> = ({pageContext}): React.ReactElement => { const data =

我有和中相同的问题,但由于某种原因,解决方案对我不起作用

模板内部的
console.log
显示正确传递到组件的数据和
pageContext
{cat:“cat Name”,limit:10}
,但查询结果返回的项目的类别与应用的过滤器不同。相同的查询工作正常,并返回GraphiQL资源管理器中的筛选列表

我的模板组件:

const Page: FC<unknown> = ({pageContext}): React.ReactElement => {
  const data = useStaticQuery(query)
  console.log(data, query, pageContext)

...

const query = graphql`
  query GetItems($cat: String, $limit: Int) {
    items: allItems(limit: $limit, filter: { category: { eq: $cat } }) {

所以问题是-我做错了什么,我能做些什么来调试它

编辑:所以我没有仔细阅读文档,而且
useStaticQuery
我从其他页面复制粘贴的内容不能接受变量。我试图删除它,但没有在我的组件中获得
data
prop。稍后,我将用我所更改内容的附加信息更新问题位。

假设:

{cat: "Cat Name", limit: 10}
我不知道这是否是一个输入错误,但是
title
不是
cat
的属性。如果是这样,请修复它,否则,
cat:cat.title
,将成为
未定义的

此外,您还可以通过手动添加上下文值来创建要在
localhost:8000/\uuuuuuu图形ql
中使用的示例查询:

  query GetItems {
    items: allItems(limit: 10, filter: { category: { eq: "Cat Name"} }) {

     ...
    }

然后,您将能够相应地测试您的预期结果。

localhost:8000/\uuuuuu graphql上的示例查询是我在
中提到的,相同的查询工作正常,并返回GraphiQL资源管理器中的筛选列表。
-当这样测试时,它工作正常。
{cat:“cat Name”,limit:10}
是我编辑的
console.log(数据、查询、页面上下文)
的结果,如果不清楚,很抱歉。这是
pageContext
部分,我认为应该由gatsby将其传递给graphql查询,并对问题进行了一些更新,以使其更清晰。好吧,看来我很愚蠢,没有足够仔细地阅读文档。StaticQuery无法实际接受variableSecx,因此得名。您可以在页面组件上使用页面查询并将数据传递给您的组件OK,看来我很愚蠢,没有仔细阅读文档。StaticQuery无法接受变量
  query GetItems {
    items: allItems(limit: 10, filter: { category: { eq: "Cat Name"} }) {

     ...
    }