【发布时间】:2021-12-01 08:49:09
【问题描述】:
我有这个登录页面,它是使用 gatsby-node.js 中的页面查询生成的,理想情况下会列出包含在类别 x 中的所有产品。通过页面查询,我在 Context 中传递类别名称。
createPage({
path: `/landings/${pathName}`,
component: path.resolve(`src/templates/product-pages/landing.js`),
context: {
data: cat.name,
},
在 Landing 函数中,我将类别名称传递给另一个名为 Products 的函数,该函数包含一个查询,该查询列出了父类别的所有子产品并将它们传递回 Landing。
const Landing = (data) => {
const title = data;
return (
<div>
<h1>{title.pageContext.data}</h1>
<Products category={"product category"}/>
</div>
)
}
export default Landing;
const Products = ({category}) => {
console.log(query);
return (
<div>
</div>
)
}
export const query = graphql`
query {
allTaxonomyTermProductCategories(filter: {name: {in: "Backlit Film"}}) {
nodes {
relationships {
commerce_product_variation__acyrlic {
sku
}
commerce_product_variation__vinyl {
sku
}
}
}
}
}
`;
export default Products;
例如,我正在传递“背光胶片”,但希望它传递从 Landing 获得的类别名称。我遇到的第一个问题是 Products 函数返回一个 10 位哈希码 2403848351,我知道这与直接调用查询有关,但不确定如何解决它。
【问题讨论】:
-
查询是 [gatsby] 内部使用,它不存在于 FC [在运行时...页面查询只能在页面组件上使用