GatsbyJS с TypeScript: получить контекст страницы в макете? - PullRequest
0 голосов
/ 08 июля 2019

Можно ли получить доступ к контексту страницы из макета в GatsbyJS?

В контексте моей страницы у меня есть дополнительные данные, которые я хочу использовать в заголовке, например описание метатега или списокпереведенные страницы.

Я пытался изменить запрос graphql на ..

query={graphql`
  query IndexLayoutQuery {
    site {
      siteMetadata {
        title
        description
        keywords
      }
    },
    sitePage {
      context {
        langKey
      }
    }
  }
`}

.. но контекст всегда пуст.

Весь мой макет выглядит такэто прямо сейчас:

interface StaticQueryProps {
  site: {
    siteMetadata: {
      title: string
      description: string
      keywords: string
    }
  }
}

interface Props {
  translation?: Translation
}

const IndexLayout: React.FC<Props> = ({ children, translation = EnglishTranslation }) => (
  <StaticQuery
    query={graphql`
      query IndexLayoutQuery {
        site {
          siteMetadata {
            title
            description
            keywords
          }
        }
      }
    `}
    render={(data: StaticQueryProps) => (
      <IntlProvider locale={translation.language} messages={translation.messages}>
        <LayoutRoot>
          <Helmet
            title={data.site.siteMetadata.title}
            meta={[
              { name: 'description', content: data.site.siteMetadata.description },
              { name: 'keywords', content: data.site.siteMetadata.keywords }
            ]}
          >
            <html lang={translation.language} />
          </Helmet>
          <Header title={data.site.siteMetadata.title} />
          <Main>{children}</Main>
          <Footer />
        </LayoutRoot>
      </IntlProvider>
    )}
  />
)

export default IndexLayout

Как я могу получить доступ к контексту страницы из макета?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...