【问题标题】:How to structure a GraphQL mutation when dealing with an array of objects处理对象数组时如何构造 GraphQL 突变
【发布时间】:2019-10-17 03:53:02
【问题描述】:

我正在使用 Apollo 客户端并尝试构建一个提交对象的突变,该对象的一部分是子类型的数组,该数组的大小需要是动态的,但我找不到任何有关如何正确构建它的文档.

这是我的手动输入数组的突变,效果很好。

const SET_TEMPLATE = gql`
mutation setTemplate( 
    $id: String,
    $name: String, 
    ) {
    setTemplate(
        id: $id
        input: {
            name: $name
        }
        data: [
            {
                name: "Branded"
                format: "String"
                canExpand: false
                data: {}
            },
            {
                name: "Assigned User"
                format: "String"
                canExpand: false
                data: {}
            },
            {
                name: "Assigned Users"
                format: "String"
                canExpand: false
                data: {}
            }
        ]) {
        name
        author
        data {
            name
            format
            data
        }
    }
}
`

以下是我想要实现的伪。

const SET_TEMPLATE = gql`
mutation setTemplate( 
    $id: String,
    $name: String, 
    $data: FieldInput 
    ) {
    setTemplate(
        id: $id
        input: {
            name: $name
        }
        data: [
            $data
        ]) {
        name
        author
        data {
            name
            format
            data
        }
    }
}
`

我应该关注这样的事情,还是有更简单的方法? Dynamic mutation document for react-apollo

【问题讨论】:

    标签: javascript graphql apollo


    【解决方案1】:

    这是可能的, 你只是在你的突变变量减速中遇到了一个小问题。
    而不是$data: FieldInput 将其声明为$data: [FieldInput]
    您想要实现的结果查询将如下所示:

    const SET_TEMPLATE = gql`
    mutation setTemplate( 
        $id: String,
        $name: String, 
        $data: [FieldInput]
        ) {
        setTemplate(
            id: $id
            input: {
                name: $name
            }
            data: $data) {
            name
            author
            data {
                name
                format
                data
            }
        }
    }
    `
    

    【讨论】:

      猜你喜欢
      • 2020-02-03
      • 2017-02-07
      • 2017-11-07
      • 2019-11-19
      • 2017-03-09
      • 2016-11-02
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多