GatsbyJS如何推断GraphQL数据类型?

时间:2019-01-29 03:18:21

标签: graphql gatsby

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

我正在研究GatsbyJS存储库。根据{{​​3}},GatsbyJS会自动从我的markdown文件中推断出模式,这些文件会使用tags: ["sayings", "wisdom"]这样的行隐式定义类型。当然,GatsbyJS应该推断类型为数组,列表或类似的东西。为什么GatsbyJS会推断类型为String?

1 个答案:

答案 0 :(得分:2)

开发服务器正在运行时,可以在SELECT a.name, a.timein, a.signature, b.timeout, b.signature FROM check_in a FULL OUTER JOIN check_out b ON a.datein = b.dateout AND a.name = b.name WHERE a.datein = '2019-01-28' OR b.dateout = '2019-01-28'; 上访问其的GraphiQL接口。 Graph i QL是一个IDE,不仅可以让您针对GraphQL服务器编写和运行查询,而且还提供了一种查看架构的方式,包括每个可用字段的类型。有关更多信息,请参见the docs。它包括语法高亮显示,因此在编写查询时强烈建议使用它。

您看到的错误表明字段http://localhost:8000/___graphql的类型为tags。此处的括号表示类型[String]的{​​{1}}(或数组)。 ListStringStringIntFloat都是内置标量类型。具有标量类型(或枚举)的字段被视为“引导节点”,因此,它们本身不能具有字段选择。换句话说,

Boolean

是无效的语法。必须是

ID

这就是为什么您看到上述错误的原因。如其声明,类型tags {} 没有子字段。如果假设tags 字段返回的类型是对象类型或对象列表,那么您必须指定要返回的字段。

您可能会发现,详细了解GraphQL概念很有帮助。 This tutorial将是一个很好的起点,并且总是有specification itself

相关问题