在Apollo GraphQL中传递对象有几种解决方法,下面是其中两种常见的方法:
使用GraphQL输入对象类型(Input Object Type): 首先,定义一个输入对象类型,例如:
input UserInput {
name: String!
age: Int!
}
在GraphQL API的相应查询或变异中使用这个输入对象类型:
mutation createUser($user: UserInput!) {
createUser(user: $user) {
id
name
age
}
}
在客户端调用Apollo Client时,可以将对象作为变量传递:
const user = {
name: "John",
age: 25
};
const createUserMutation = gql`
mutation createUser($user: UserInput!) {
createUser(user: $user) {
id
name
age
}
}
`;
client.mutate({
mutation: createUserMutation,
variables: {
user: user
}
}).then(result => {
// 处理结果
});
使用GraphQL标量类型: 如果对象是GraphQL标量类型(如String、Int、Boolean等),可以直接将它们作为参数传递。例如:
mutation createUser($name: String!, $age: Int!) {
createUser(name: $name, age: $age) {
id
name
age
}
}
在客户端调用Apollo Client时,可以将对象的属性作为变量传递:
const name = "John";
const age = 25;
const createUserMutation = gql`
mutation createUser($name: String!, $age: Int!) {
createUser(name: $name, age: $age) {
id
name
age
}
}
`;
client.mutate({
mutation: createUserMutation,
variables: {
name: name,
age: age
}
}).then(result => {
// 处理结果
});
这些解决方法可以根据具体的需求和数据类型来选择使用。