【发布时间】:2021-02-06 02:42:45
【问题描述】:
我遇到了与How do you pass variables to pageQuery 相同的问题,但由于某种原因解决方案对我不起作用
模板内的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 } }) {
我的 creatPage 部分:
console.log(cat)
createPage({
path: `cat/${cat.slug}`,
component: template,
context: {
cat: cat.title,
limit: 10
},
})
所以问题是 - 我做错了什么,我可以做些什么来调试它?
编辑:所以我没有仔细阅读文档,并且useStaticQuery我从其他页面复制粘贴不能接受变量。我试图删除它,但在我的组件中没有得到 data 道具。稍后我将更新问题位,并提供有关我所做更改的更多信息。
【问题讨论】:
-
好吧,看来我很愚蠢,没有仔细阅读文档。 StaticQuery 不能接受变量
标签: gatsby