Graphql 如何在Lokka突变中传递数组?

Graphql 如何在Lokka突变中传递数组?,graphql,apollo,apollo-client,graphcool,Graphql,Apollo,Apollo Client,Graphcool,我正在从事一个有GraphTool、Lokka和Nodejs的项目。我必须传递itemsIds:[ID!],现在当一个字符串数组被传递到字符串文本中时,该数组变成[id1,id2,id3],变异需要[id1,id2,id3]。阿波罗GraphQL的问题也是如此。我用下面的代码解决了这个问题。我做错什么了吗?有简单的解决办法吗- let cc = ''; data.allCarts[0].items.map(item => cc = cc.co

我正在从事一个有GraphTool、Lokka和Nodejs的项目。我必须传递itemsIds:[ID!],现在当一个字符串数组被传递到字符串文本中时,该数组变成[id1,id2,id3],变异需要[id1,id2,id3]。阿波罗GraphQL的问题也是如此。我用下面的代码解决了这个问题。我做错什么了吗?有简单的解决办法吗-

            let cc = '';
            data.allCarts[0].items.map(item => cc = cc.concat(`'${item.id}',`));

            cc = cc.concat(`'${itemid}'`);
            console.log('mogg ', cc);
            cc = cc.replace(/'/g, '"');
            console.log('gogg ', cc);

            let nodeid = data.allCarts[0].id;
            console.log('Node:: ', nodeid, 'items:: ', cc);

            client.mutate(`{
                uo: updateCart(id: "${nodeid}", itemsIds: [${cc}]){
                    id
                    }
            }`
            ).then(
                (response) => {
                    console.log('cart update:: ', response.uo);
                    sendTextMessage(user, 'Done adding to cart, choose to add more');
                }
                )
                .catch(error => console.error(error));

将参数的值直接插入查询字符串是笨拙的——这就是变量的用途

itemsIds正在寻找一个ID数组,因此让我们为它们提供:

const cc = data.allCarts[0].items.map(item => item.id).concat(itemid);
然后。。。洛卡:

或者。。。阿波罗:

const mutation = `($nodeid: ID, $cc: [ID!]){
  uo: updateCart(id: $nodeid, itemsIds: $cc){
    id
  }
}`

const variables = { nodeid, cc }

client.mutate(mutation, variables)
const mutation = gql`mutation UpdateCart($nodeid: ID, $cc: [ID!]){
  updateCart(id: $nodeid, itemsIds: $cc){
    id
  }
}`

const variables = { nodeid, cc }

client.mutate({mutation, variables})