如何在 Gatsby 的模板组件中访问上下文变量?

Posted

技术标签:

【中文标题】如何在 Gatsby 的模板组件中访问上下文变量?【英文标题】:How to access context variable within the template component in Gatsby? 【发布时间】:2019-11-10 11:33:31 【问题描述】:

在 Gatsby 应用程序的反应组件中,我了解如何在 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 的钩子?

【问题讨论】:

【参考方案1】:

10 分钟小睡的效果真是太棒了!实际上,您可以使用此处详述的 pageContext 属性访问上下文变量:https://www.gatsbyjs.org/docs/creating-and-modifying-pages/#creating-pages-in-gatsby-nodejs

const TagPage = ( data, classes , pageContext) => 

将 pageContext 添加到我的道具允许我访问$tag

【讨论】:

以上是关于如何在 Gatsby 的模板组件中访问上下文变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何以角度访问组件模板中的服务变量

Gatsby 和 GraphQL:访问模板页面中的数据

GraphQL - Gatsby.js- React 组件。 - 如何查询变量/参数?

引用 Gatsby 模板中查询中使用的 GraphQL 变量?

如何在Django中访问子模板中的会话变量?

Gatsby:在组件中访问 props 数组的长度会导致 TypeError(属性未定义)