如何使用自定义输入和变量构建阿波罗客户突变

时间:2019-03-18 21:54:00

标签: javascript graphql react-apollo apollo-client graphql-js

我有可用于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
   }
  }
`

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

1 个答案:

答案 0 :(得分:0)

如果仅打算使用$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来打开变量编辑器。