Обновление: для моего конкретного случая использования решение @ langpavel будет работать.Тем не менее, это позволяет избежать ответа на исходный вопрос ... возможно ли условно применить фильтр GraphQL на основе значения переданного аргумента?
Я передаю аргумент в мойЗапрос GraphQL с именем $env
, который я хотел бы использовать в сочетании с логическим значением draft
в frontmatter уценки моих сообщений в блоге, чтобы отфильтровать черновики во время производства.
Мой запрос в сокращенной форме, ниже.Как видите, у меня есть функция фильтра, которая фильтрует в зависимости от того, является ли запись в блоге черновиком или нет.Что я не могу понять, как это сделать, так это воспользоваться аргументом $env
, чтобы применять фильтр только тогда, когда $env
равен production
.
export const pageQuery = graphql`
query BlogPosts($env: String!) {
markdownRemark(
filter: { frontmatter: { draft: { eq: true } } }
) {
frontmatter {
title
date(formatString: "MMMM DD, YYYY")
draft
}
}
}
`