在使用AppSync
时,如果数组属性具有与之关联的@key
指令,无法直接在模式中创建具有数组的类型。这是由于AWS AppSync
中的关键字转换规则和数据类型定义的限制引起的。
解决方法是通过使用两个模式(type
),一个用于数组的类型定义,另一个用于关联@key
指令的类型定义。
以下是一个示例代码,演示如何解决这个问题:
type User {
id: ID!
name: String!
posts: [Post] @key(name: "byUser", fields: ["id"])
}
type Post {
id: ID!
title: String!
content: String!
user: User @key(name: "byUser", fields: ["id"])
}
type Query {
getUser(id: ID!): User
}
在上面的示例代码中,我们定义了两个类型:User
和 Post
。User
类型具有一个名为 posts
的数组属性,它具有与之关联的 @key
指令。这意味着我们无法直接在 User
类型中定义数组的类型。
为了解决这个问题,我们将 Post
类型定义为一个单独的类型,然后在 User
类型中使用 User
类型的数组属性。
这样,我们就能够定义一个具有数组的类型,并且能够正确地使用与之关联的 @key
指令。
希望这个解决方法能帮助到你!