无法用字符串数组编写变异

时间:2019-01-24 00:33:59

标签: javascript graphql prisma-graphql

不能在带有列表标量类型的graphql游乐场中使用set。

我创建了Prisma datamodel.graphql并进行了部署。我的运动类型中的一个字段是运动列表。我使用列表标量类型定义了此字段,并在我的mutation.js文件中编写了伴随的突变。当我尝试在graphql操场上添加新练习时,出现此错误。

{
  "data": null,
  "errors": [
    {
      "message": "Variable \"$_v0_data\" got invalid value {\"name\":\"split squat 3\",\"movement\":[\"push\",\"pull\"],\"liked\":false}; Field \"0\" is not defined by type ExerciseCreatemovementInput at value.movement.\nVariable \"$_v0_data\" got invalid value {\"name\":\"split squat 3\",\"movement\":[\"push\",\"pull\"],\"liked\":false}; Field \"1\" is not defined by type ExerciseCreatemovementInput at value.movement.",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "createExercise"
      ]
    }
  ]
}

这是我在graphql游乐场写的突变。

mutation {
  createExercise(
    name: "split squat 3"
    movement: ["push", "pull"]
    liked: false
  ) {
    id
    name
  }
}

这是datamodel.graphql文件。

type User {
  id: ID! @unique
  name: String!
}

# model for exercises
type Exercise {
  id: ID! @unique
  name: String!
  movement: [String!]!
  liked: Boolean
  video: String
}

当我编写的突变没有任何字符串,只是一个空数组,

mutation {
  createExercise(
    name: "split squat 3"
    movement: []
    liked: false
  ) {
    id
    name
  }
}

一切正常,并且将练习添加为新节点。

当我尝试用这样的set编写变异时,

mutation {
  createExercise(
    name: "split squat 3"
    movement: {set: ["push","pull"]}
    liked: false
  ) {
    id
    name
  }
}

我也遇到错误。

我可以登录pyramida.io并通过手动创建一个新节点将字符串添加到数组中。

我不确定为什么不能在突变中添加字符串列表。 =

2 个答案:

答案 0 :(得分:1)

您必须像在pyramida模式中一样创建一个单独的输入。

input ExcerciseCreatemovementInput{
  set: [String!]
}

答案 1 :(得分:0)

movement: {set: ["push","pull"]}正在为我工​​作。