Фильтрация запроса GraphQL по отображенному полю не возвращает никаких результатов - PullRequest
0 голосов
/ 22 мая 2019

Посмотрим. У меня есть сайт Гэтсби, сайт песен. Каждая песня представляет собой файл Markdown с некоторыми полями frontmatter (заголовок, альбом, автор и т. Д.). У меня есть запрос GraphQL для каждой страницы автора, и он фильтрует все песни и возвращает те, которые соответствуют имени автора, которое я передаю.

Я хочу отобразить больше информации о каждом авторе, поэтому я добавил файлhors.json с именем, биографией и изображением для каждого из них и добавил отображение в свой конфигурационный файл gatsby, сопоставив автора frontmatter с именем автора (из моего JSON файл). Пока все хорошо.

Это работает на большинстве страниц, мне нужно было только обновить свои запросы от frontmatter {author} до frontmatter {author {name}}.

Но запрос страницы автора не работает. У меня есть возни в GraphiQL, и удаление фильтра заставляет его правильно возвращать все сопоставленные поля, но, конечно, мне нужен фильтр.

Я также пытался жестко закодировать значение автора, поскольку оно обычно предоставляется контекстом страницы, но оно также не работало.

Не уверен, где я иду не так: /

Я добавлю несколько соответствующих фрагментов:

Пример Frontmatter:

---
title: Adeus camarada, adeus
author: Contra Mestre Rafael
album: Quando os berimbaus se encontram
tags: ["quadra"]
date: 2019-02-02
---

Авторская запись (авторы json представляет собой их массив):

{
    "name": "Contra Mestre Rafael",
    "bio": "Placeholder bio.",
    "image": "/images/authors/cm-rafael.jpg"
}

Запрос, который не работает:

    query($author: String) {
        allMarkdownRemark(
            limit: 2000
            sort: { fields: [frontmatter___date], order: DESC }
            filter: { frontmatter: { author: { eq: $author } } }
        ) {
            totalCount
            edges {
                node {
                    fields {
                        slug
                    }
                    frontmatter {
                        author {
                            name
                            bio
                            image
                        }
                        title
                    }
                }
            }
        }
    }

В настоящий момент allMarkdownRemark возвращает ноль, и я ожидаю, что он вернет массив узлов для каждой песни, которая соответствует автору, и сопоставленную информацию об авторе в каждой из них.

1 Ответ

0 голосов
/ 23 мая 2019

В данный момент Гэтсби, кажется, не поддерживает это. Друг прислал мне это:

https://github.com/gatsbyjs/gatsby/issues/4614

Я постараюсь внести исправление в Гэтсби, если смогу:)

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