繁体   English   中英

错误:@default 只接受标量类型,这可能是数组 lints 严重的原因

[英]Error: @default only accepts scalar types, which might be why the array lints badly

我正在尝试amplify push我更新的amplify/backend/api/<myAPIName>/schema.graphql文件。 我收到以下错误:

An error occurred during the push operation: /
Schema validation failed.

Expected type String, found ["Admins", "Users"].

canRead: [String] @default(value: ["Admins", "Users"])

Expected type String, found ["Admins", "Users"].

schema.graphql中的违规代码:

type Card {
  ...
  canRead: [String] @default(value: ["Admins", "Users"])
}

如您所见,我正在尝试在我的卡 object 上设置一个字段“canRead”。 该字段应该是一个字符串数组。 我希望默认值为["Admins", "Users"] ,但 Amplify/graphql 仅接受标量类型作为默认值。

GraphQL 文档将整数和字符串等内容列为标量类型,但随后令人困惑地表示“appearsIn”将在提供的示例中解析为标量:

 { "data": { "hero": { "name": "R2-D2", "appearsIn": [ "NEWHOPE", "EMPIRE", "JEDI" ] } }

我的意思是字符串数组也可能被视为标量,但显然不是,否则我的代码可能会工作?

该文档继续戏弄以下内容:

在大多数 GraphQL 服务实现中,还有一种方法可以指定自定义标量类型。 例如,我们可以定义一个 Date 类型:

scalar Date

然后由我们的实现来定义应该如何序列化、反序列化和验证该类型。 例如,您可以指定应始终将 Date 类型序列化为 integer 时间戳,并且您的客户端应该知道任何日期字段都需要该格式。

但它没有描述如何做到这一点,以及限制是什么。 谁能建议是否/如何定义默认的字符串数组?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM