如何访问 Gatsby 模板组件中的上下文变量?
How to access context variable within the template component in Gatsby?
在 Gatsby 应用程序的 React 组件中,我了解如何在 graphql 查询中使用上下文变量,例如:
export const tagPageQuery = graphql`
query TagPage($tag: String) {
site {
siteMetadata {
title
}
}
allItem(filter: { tags: { in: [$tag] } }) {
totalCount
edges {
node {
id
move
videoUrl
$tag
是一个允许我过滤的字符串。我明白了。但是有没有办法在组件本身内访问这个值?我可以访问 graphql 查询获取的数据,但无法获取 Graphql 之外的变量。我希望它是 {context.tag}
或类似的东西,以便能够在我的 h1
中使用该值。我已经经历了 Gatsby GraphQL reference 并且没有骰子。感觉得到这个值应该很容易,但我想知道我是否需要使用类似 getContext
钩子的东西?
小睡 10 分钟的效果真是太棒了!实际上,您可以使用此处详述的 pageContext 属性访问上下文变量:https://www.gatsbyjs.org/docs/creating-and-modifying-pages/#creating-pages-in-gatsby-nodejs
const TagPage = ({ data, classes , pageContext}) => {
将 pageContext 添加到我的 props 允许我访问 $tag
。
在 Gatsby 应用程序的 React 组件中,我了解如何在 graphql 查询中使用上下文变量,例如:
export const tagPageQuery = graphql`
query TagPage($tag: String) {
site {
siteMetadata {
title
}
}
allItem(filter: { tags: { in: [$tag] } }) {
totalCount
edges {
node {
id
move
videoUrl
$tag
是一个允许我过滤的字符串。我明白了。但是有没有办法在组件本身内访问这个值?我可以访问 graphql 查询获取的数据,但无法获取 Graphql 之外的变量。我希望它是 {context.tag}
或类似的东西,以便能够在我的 h1
中使用该值。我已经经历了 Gatsby GraphQL reference 并且没有骰子。感觉得到这个值应该很容易,但我想知道我是否需要使用类似 getContext
钩子的东西?
小睡 10 分钟的效果真是太棒了!实际上,您可以使用此处详述的 pageContext 属性访问上下文变量:https://www.gatsbyjs.org/docs/creating-and-modifying-pages/#creating-pages-in-gatsby-nodejs
const TagPage = ({ data, classes , pageContext}) => {
将 pageContext 添加到我的 props 允许我访问 $tag
。