首页 > 解决方案 > 如何使用自定义输入和变量构建 apollo 客户端突变

问题描述

我有适用于 graphiQL 的突变:

mutation ADDRELEASE{
  createRelease(release: {
    title: "Release Title"
    releaseType: "Album"

  }) {
    title
    id
  }
} 

我正在尝试将apollo 客户端graphql-tag一起使用并设置如下变异变量:

 const CREATE_RELEASE = gql`
  mutation($release: {
    $title: String 
    $releaseType: String
  }){
    createRelease(release: {
      title: $title 
      releaseType: $releaseType

    }){
    id
   }
  }
`

我想这是语法问题。无法弄清楚如何使它工作。

标签: javascriptgraphqlreact-apolloapollo-clientgraphql-js

解决方案


如果您只打算使用and ,则无需为这两个变量$release 其他两个变量定义一个变量。您可以执行以下任一操作:$title$releaseType

# Replace ReleaseInput with the appropriate type based on the schema
mutation($release: ReleaseInput) {
  createRelease(release: $release) {
    id
  }
}

或者...

mutation(
  $title: String 
  $releaseType: String
) {
  createRelease(release: {
    title: $title 
    releaseType: $releaseType
  }) {
    id
  }
}

值得一提的是,您还可以在 GraphiQL 中使用变量测试查询。您可以通过单击QUERY VARIABLES页面左下角的 来打开变量编辑器。


推荐阅读