【发布时间】:2021-10-04 15:27:44
【问题描述】:
我正在使用具有内容数据源和 gatsby-plugin-react-int 的 gatsby。
在我网站的每个页面上显示最新消息的块,因此我使用 useStaticQuery 挂钩来获取“新闻”组件的数据
export const useStaticNewsQuery = () => useStaticQuery(graphql`
query StaticNews {
allContentfulNews {
nodes {
node_locale
gatsbyPath(filePath: "/news/{contentfulNews.slug}")
slug
title
body {
body
}
publishDate
}
}
}
`)
但由于我的网站是多语言的 - 我需要获取与当前语言环境相关的本地化新闻。
据我所知 - staticQuery 不允许传递变量。
但是如何才能在组件中只请求与当前语言环境相关的新闻呢?
如果我将使用 pageQuery - 我将必须对我的应用程序中包含“新闻”组件的每个页面发出相同的请求,并将结果通过道具/上下文传递给我的“新闻”组件
也许我应该在 gatsby-node.js 中使用一些魔法来查询与当前语言环境相关的数据并将其传递给一些全局上下文? 此外 - 页眉、页脚和页面的其他部分也将使用相同的内容,这些内容将由单独的组件呈现并放置在几乎所有页面上,但应取决于当前的语言环境
【问题讨论】:
标签: graph internationalization gatsby contentful gatsby-plugin