我正在使用Apollo Client并尝试构建一个提交对象的突变,该对象的一部分是子类型的数组,该数组的大小需要动态变化,但是我找不到任何有关如何正确构建此对象的文档。
这是我的突变,带有手动类型的数组,可以正常工作。
const SET_TEMPLATE = gql`
mutation setTemplate(
$id: String,
$name: String,
) {
setTemplate(
id: $id
input: {
name: $name
}
data: [
{
name: "Branded"
format: "String"
canExpand: false
data: {}
},
{
name: "Assigned User"
format: "String"
canExpand: false
data: {}
},
{
name: "Assigned Users"
format: "String"
canExpand: false
data: {}
}
]) {
name
author
data {
name
format
data
}
}
}
`
以下是我想要实现的目标。
const SET_TEMPLATE = gql`
mutation setTemplate(
$id: String,
$name: String,
$data: FieldInput
) {
setTemplate(
id: $id
input: {
name: $name
}
data: [
$data
]) {
name
author
data {
name
format
data
}
}
}
`
我应该关注这样的事情,还是有更简单的方法? Dynamic mutation document for react-apollo
答案 0 :(得分:1)
这是可能的,
您在突变变量脱节中仅存在一个小问题。
将其声明为$data: FieldInput
而不是$data: [FieldInput]
。
您将要实现的查询结果如下所示:
const SET_TEMPLATE = gql`
mutation setTemplate(
$id: String,
$name: String,
$data: [FieldInput]
) {
setTemplate(
id: $id
input: {
name: $name
}
data: $data) {
name
author
data {
name
format
data
}
}
}
`