如何将数组输入到GraphQL突变中

时间:2019-01-17 02:06:08

标签: graphql apollo apollo-server

我正在尝试向Mutation中添加一个具有自己类型的数组的字段。当我将吸引力添加到createTour突变中时,我开始遇到以下错误:

错误:Mutation.createTour(attractions :)的类型必须为Input Type,但得到:[Attraction]。

这是有问题的突变

type Mutation {
    createTour(
    title: String!
    description: String!
    attractions: [Attraction]      <----- THIS LINE
    ): Tour
    addCommentToTour(id: ID!, comment: String!): Tour
}

这也是我的typedef。

type Attraction {
    title: String
    description: String
    coordinateLat: Int
    coordinateLong: Int
}

type Tour {
    id: ID!
    title: String!
    description: String!
    author: String!
    attractions: [Attraction]      
}

如何获取此变异以接收此数组?

1 个答案:

答案 0 :(得分:0)

DanielRearden在评论中已经或多或少地回答了该问题。

在方案中,必须将突变的所有输入属性定义为input。您不能使用与输出相同的类型。

根据您的情况,您必须另外创建一个:

input AttractionInput {
  title: String
  description: String
  coordinateLat: Int
  coordinateLong: Int
}

基本思想是,您的输入可能与输出不同。有点多余的代码,但是分隔更加清晰。