【发布时间】:2019-11-04 01:00:42
【问题描述】:
我正在尝试了解 StaticQuery 在 Gatsby/GraphQL 工作流程中的工作原理,作为试验,我想构建一个带有背景图片的文章标题。
图像是在我从 (frontmatter.feature) 构建的降价文件的 frontmatter 中定义的。
我知道 StaticQuery 的本质是……嗯……静态的,所以我不能将动态变量传递给查询。但这不是我正在做的 - 我认为。
这是我的例子:
articleHeader(frontmatter) {
if (frontmatter.feature) {
return (
<StaticQuery
query={graphql`
query($base: String!) {
file(base: { eq: $base }) {
publicURL
}
}
`}
render={data => (
<ArticleHeader
style={"background-image:url(" + data.file.publicURL + ")"}
>
<Heading>{frontmatter.title}</Heading>
</ArticleHeader>
)}
/>
);
} else return <Heading>{frontmatter.title}</Heading>;
}
我的问题是我想将frontmatter.feature 传递给我的查询,以便我可以查询base: { eq: $base } ...但是如何?
注意:我已经正确设置了插件,可以通过graphiql界面查询文件没有问题。
【问题讨论】: