GraphQL not null可空对象字段返回错误

GraphQL not null可空对象字段返回错误,graphql,Graphql,以下架构在可选对象中包含NOTNULL字段(允许整个对象为null)。 它定义了具有可选字段Child的父对象列表-允许某些父对象具有null Child type人物{ 人员:[家长] } 类型父级{ 孩子:孩子 } 类型子{ 钥匙:绳子! } 下面的GraphQL查询返回预期的父对象列表(有些子对象的值为空)。 但它也会返回一个附加到结果的错误。 这是GraphQL中的一个bug吗(Child是可选的)?还是预期的行为 无法为不可为null的类型返回null:父“子”中的“字符串” 这是预

以下架构在可选对象中包含NOTNULL字段(允许整个对象为null)。 它定义了具有可选字段Child的父对象列表-允许某些父对象具有null Child

type人物{
人员:[家长]
}
类型父级{
孩子:孩子
}
类型子{
钥匙:绳子!
}
下面的GraphQL查询返回预期的父对象列表(有些子对象的值为空)。 但它也会返回一个附加到结果的错误。 这是GraphQL中的一个bug吗(Child是可选的)?还是预期的行为

无法为不可为null的类型返回null:父“子”中的“字符串”

这是预期的行为。问题不在于某些
子项
字段为空,而在于某些
子项
返回空值——这是错误中引用的
字符串
。您不会在数据中看到
null
键;相反,有问题的子字段将只返回
null
。这是因为GraphQL错误会“冒泡”到下一个可为空的父字段,如中所述:

由于非Null类型的字段不能为Null,因此会传播字段错误以由父字段处理。如果父字段可能为null,则它将解析为null,否则,如果它是非null类型,则字段错误将进一步传播到它的父字段


谢谢我想这就是为什么GraphQL允许数组中的
null
?@DanielRearden这里是我类似的问题:@VladimirAlexiev这里是我类似的问题: