我正在构建使用graphql API的本机脚本移动应用程序,并且正在通过apollo boost使用apollo客户端。
当我尝试发送如下所示的突变内的对象数组时,会出现问题:
let {
to,
total,
drugList
} = order
apolloClient.mutate({
mutation: gql `mutation {
makeOrder(
to: "${to}",
total: ${total},
drugList: ${drugList}
){
id
}
}`
}).then((res) => {
console.log(res)
}).catch((error) => {
console.log(error)
})
我尝试将drugList记录在模板文字中,例如:
console.log(`${drugList}`)
但是我得到了 [object object],[object object] ,然后我尝试使用${[...drugList]}
来代替,我得到了所需的对象数组结构,但是apollo的mutate函数客户不接受它(不执行突变或记录错误)。
我想让它运行吗?还是有建议运行它?
答案 0 :(得分:0)
感谢 Bergi ,他注意到我使用了带有gql标签的模板文字的查询,该查询无法与console.log测试中的简单模板字符串进行比较。
因此,我对此进行了搜索,发现变量属性可以解决问题,因此这是最终结果。
let {
to,
total,
drugList
} = order
apolloClient.mutate({
mutation: gql `mutation ($to: ID!, $total: Float!, $drugList: [OrderDrugsListInput!]!) {
makeOrder(
to: $to,
total: $total,
drugList: $drugList
){
id
}
}`,
variables: {
to: to,
total: total,
drugList: drugList
}
}).then((res) => {
console.log(res)
}).catch((error) => {
console.log(error)
})