对象数组的 Graphql 输入类型

Graphql input type of array of objects

我有这个架构:

type Preference{
    _id: ID!
    uID: ID!
    preferences: [Category!]!
}

type Category{
    name: String!
    subcategories: [String]!
}

type RootMutation{
    createPreference(perferenceInput: PerferenceInput) : Preference
}

input PerferenceInput{
    uID: String!
    preferences: [Category!]!
}

schema {    
    query: RootQuery
    mutation: RootMutation
}

type RootQuery {
    preferences: [Preference!]!
    category: [Category!]!
}

但是 Graphql 给了我一个错误,指出:message": "The type of PerferenceInput.preferences must be Input Type but got: [Category].", 我已经追溯到与 graphql 无法解析 [Category] 数组有关。

我需要将此数组作为 Preference 对象中的嵌套数组,但不知何故 graphql 无法解析它.. 那么,如何将类别数组作为输入类型传递给?

这是众所周知的 GraphQL 限制。

You can't use regular GraphQLObjectTypes as the type for an GraphQLInputObjectType field – you must use another GraphQLInputObjectType.

您不能在架构中混用输入和输出类型。输入和输出类型具有不同的类型范围。