client.mutate[1]({
mutation[2]: gql`
mutation[3] signOut[4] {
signOut[5] {
success[6]
}
}
`,
});
括号中的数字是我对查询不同部分的注释。我对它们的含义的最佳猜测如下。在错误或不完整的地方纠正我。我最大的疑问是斜体:
[1] client.mutate Apollo客户端上有一个mutate方法,因为Apollo客户端处理变异的方式与查询不同。
[2]变异只是一个名为mutation的对象属性传递给了Apollo客户端
[3]突变服务器上的根突变字段
[4]注销:突变根字段上可用的字段。 令我惊讶的是,signOut在突变后立即写出,而不是放在方括号内的单独行中
[5] signOut 我猜服务器上的signOut字段解析为返回另一个称为signOut的字段? 我理解正确吗?这正常吗?
[6]成功:内部singOut字段解析为返回名为成功的对象
答案 0 :(得分:1)
关于 [4]注销和 [5]注销,这是您为突变赋予的名称。
例如:
mutation signOut {
signOut {
success
}
}
与
相同mutation logOut {
signOut {
success
}
}
两个突变都触发的method
是signOut
,但是它们具有不同的名称(logOut
和signOut
)。
所有其他要点都是正确的。
注释:
突变(或查询)的name
仅用于客户端,服务器没有命名突变的定义。
在一个突变中具有2个水平的意义是因为您可以在一个突变中触发多个突变,例如:给定必要的the user signs out and unsubscribes to notifications
,我们可以建立一个突变,例如:
mutation logOutAndUnsubscribe {
signOut {
success
}
unsubscribe {
success
}
}
在这种情况下,我们将命名为logOutAndUnsubscribe
的突变,该突变触发两个突变signOut
和unsubscribe
。同样,服务器实现了signOut
和unsubscribe
,但是对logOutAndUnsubscribe
的知识为零。