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"} }) {
...
}