提问者:小点点

获取使用对象数组的qraphql突变的所有变体的模式错误[重复]


我现在所处的环境已经有一段时间了。这并不是第一次在项目中使用对象数组进行突变,甚至也不是第一次。然而,在其他类似情况下有效的方法在这个例子中却不起作用。

我依稀记得,有时像对象数组甚至标量这样的“复杂”参数只有在转换为输入类型时才能通过解析。下面的LeaderboardEventType是一个枚举。

type LeaderboardEventScores {
    event: LeaderboardEventType!
    score: String!
}

type LeaderboardConfigScores {
    id: ID!
    scores: [LeaderboardEventScores]!
}

input LeaderboardConfigScoresInput {
     id: ID!
     scores: [LeaderboardEventScores]!
}

虽然上面的类型定义在解析器中工作,但输入定义却完全不同。我一点也不明白为什么不这样做。它们都不适用于定义我的变异参数。为输入添加一个内部!也不起作用。仅仅在输入的主体ID后面加上逗号也不起作用!作为变异参数。但是真正让我恼火的是我不能定义这样的输入。为什么不呢?


共1个答案

匿名用户

我找到了一个解决方案,但该死的是,如果它对我很有意义。如果我做一个像我正在做一个数组作为参数的类型一样的输入,而是做一个输入数组,那么它“有效”。

input LeaderboardEventScoreInput {
  event: LeaderboardEventType!
  score: String!
}

和突变

modifyLeaderboardConfigScores(
 id: ID!
 scores: [LeaderboardEventScoreInput]!
): [LeaderboardEventScores]!

因此,显然只有当元素类型是输入时才支持非标量数组。