问题描述
let salesDate = { company_id: "abcd", source: "tally", data: { value: "02", date: "2016-17-01" } }; const mutation = gql` mutation addData($data: Object){ addData(data: $data){ data } } `;
这是不起作用的,我看不到将对象定义为参数类型的任何方法.
推荐答案
您必须定义GraphQL输入类型.看看这个备忘单.
因此,在您的情况下,您必须在服务器上定义输入并将其在突变中使用,例如:
... ` input DataInput { value: Number! data: String! } ... addData(data: DataInput!): SalesDate `
在客户端,您可以使用它:
const mutation = gql mutation addData($data: DataInput!){ addData(data: $data){ data } } ;
问题描述
Is it possible to pass an object into a graphQL mutation as variables?
let salesDate = { company_id: "abcd", source: "tally", data: { value: "02", date: "2016-17-01" } }; const mutation = gql` mutation addData($data: Object){ addData(data: $data){ data } } `;
This is not working and I don't see any way to define an object as a parameter type.
推荐答案
You have to define a GraphQL input type. Take a look at this cheat sheet.
So in your case you have to define a input on the server and use it in the mutation, something like:
... ` input DataInput { value: Number! data: String! } ... addData(data: DataInput!): SalesDate `
and on the client side you can use it like:
const mutation = gql mutation addData($data: DataInput!){ addData(data: $data){ data } } ;