繁体   English   中英

如何将对象数组添加到 apollo 客户端突变请求?

[英]How to add array of objects to apollo client mutation request?

我正在构建一个 nativescript 移动应用程序,它使用 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 客户端的变异 function 不接受它(不执行突变或记录错误)。

我是否错过了让它运行的东西,或者有什么建议可以运行它?

感谢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)
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM