【发布时间】:2020-09-22 16:07:54
【问题描述】:
我正在尝试编写一个突变查询,它与 graphql 完美配合
mutation($project: ProjectsInput) {
NewProject(project: $project) {
name,
namespace,
environments{
env,
}}}
这些是查询变量
{"project": {
"name": "Pr1",
"namespace": "Pr2",
"environments":
[{"env": "rec"},{"env": "dev"}]
}}
这就是它的外观 graphql mutation 现在我正在尝试使用 Apollo Client 来构建这种突变,就像这样
createProject() {
this.apollo.mutate({
mutation: gql`
mutation($project: ProjectsInput) {
NewProject(project: $project) {
name,
namespace,
environments{
env,
}
`,
variables: {
project: {
name: "sth",
namespace: "sth2",
env: [
{env:"env1"},
{env:"env2"}
]
}
}
}).subscribe(data => {
console.log('New project created!', data);
}); }
但是由于 Array 类型的变量 $env,我收到了 Http 失败响应。我想将数组作为变量传递给 apollo 客户端中的查询。我对字符串类型的变量没有问题,但是数组对象会导致此错误。
【问题讨论】:
-
使用 graphiql 文档检查突变签名 - 可能是一个输入变量 - 将所有数据作为一个输入对象(匹配一个输入变量)传递,尝试使用 graphiql 使用
query variables(以下查询)...然后使用代码(apollo-client) -
感谢您的回复,实际上我尝试了两个输入变量并且效果很好。问题是我与数组列表类型堆叠在一起。我想动态地持久化该对象数组。问候
标签: angular graphql symfony4 apollo-client graphiql