Я использую GraphQL из проекта Gatsby. У меня есть набор файлов разметки для блогового раздела сайта. В передней части каждого файла уценки есть свойство image
.
Я бы хотел использовать API точного изображения Гэтсби для загрузки изображения в предварительную версию. При просмотре отдельного сообщения (созданного с помощью createPage api) это работает отлично, потому что я могу предоставить frontmatter.image в контексте. Вот как выглядит этот запрос.
export const pageQuery = graphql`
query($slug: String!, $image: String) {
markdownRemark(frontmatter: { slug: { eq: $slug } }) {
html
frontmatter {
date(formatString: "MMMM DD, YYYY")
slug
title
image
}
}
coverImage: file(relativePath: { eq: $image }) {
childImageSharp {
fluid(maxWidth: 1440) {
...GatsbyImageSharpFluid
}
}
}
}
`
На моей индексной странице, где я показываю все эти сообщения, я хочу отобразить уменьшенную версию этого изображения. Я могу легко получить image
из основного материала, но я не уверен, как интегрировать это в запрос.
export const pageQuery = graphql`
query {
allMarkdownRemark(sort: { order: DESC, fields: [frontmatter___date] }) {
edges {
node {
id
excerpt(pruneLength: 250)
frontmatter {
date(formatString: "MMMM DD, YYYY")
slug
title
image # <--- want to use this in a file query
}
}
}
}
}
`
Насколько я понимаю, я не могу использовать интерполяцию строк в запросе stati c в компоненте, в котором изображение фактически используется, поэтому мне нужно получить его здесь, в запросе страницы. Возможно ли то, что я пытаюсь сделать? Есть ли лучший способ справиться с этим?