Как GatsbyJS определяет типы данных GraphQL? - PullRequest
0 голосов
/ 29 января 2019

GraphQL Error Field "tags" must not have a selection since type "[String]" has no subfields.

Я работаю над репозиторием GatsbyJS.Согласно docs , GatsbyJS автоматически выводит схему из моих файлов уценки, которые неявно определяют тип со строками, такими как tags: ["sayings", "wisdom"].Конечно, GatsbyJS должен сделать вывод, что типом является массив, список или что-то в этом роде.Почему вместо GatsbyJS тип выводится как String?

1 Ответ

0 голосов
/ 29 января 2019

Пока ваш сервер разработки работает, вы можете получить доступ к интерфейсу GraphiQL для него по адресу http://localhost:8000/___graphql.Graph i QL - это среда IDE, которая позволяет не только писать и выполнять запросы к вашему серверу GraphQL, но и предоставляет способ просмотра вашей схемы, включая тип для каждого доступного поля.Пожалуйста, смотрите документы для получения дополнительной информации.Он включает подсветку синтаксиса, поэтому я настоятельно рекомендую его при составлении запросов.

Наблюдаемая ошибка указывает на то, что поле tags имеет тип [String].Скобки здесь обозначают List (или массив) типа String.String, Int, Float, Boolean и ID - все это встроенные скалярные типы.Поля со скалярным типом (или перечислением) считаются «ведущими узлами», и поэтому сами не могут иметь выбор полей.Другими словами,

tags {}

не является допустимым синтаксисом.Это должно быть просто

tags

Вот почему вы видите вышеупомянутую ошибку.Как говорится, тип [String] не имеет подполей.Если гипотетически тип, возвращаемый полем tags, является типом объекта или списком из одного, то вам нужно будет указать, какие поля возвращать.

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

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