使用react-apollo自定义InputTypes

时间:2017-10-07 16:23:27

标签: graphql react-apollo apollo-client

我正在尝试执行需要客户端上的自定义输入类型的突变查询。目前它看起来像这样:

import { graphql } from 'react-apollo';
...
const graphQuery = graphql(gql`
  input UserSignUpInput {
    firstName: String!,
    lastName: String!,
    email: String!,
    password: String!
  }
  mutation userSignUp($input: UserSignUpInput!) {
    createUserByEmail(input: $input) {
      authToken
    }
  }`, {
  props: ({ mutate }) => ({
    signup: (firstName, lastName, email, password) =>
      mutate({ variables: { input: { firstName, lastName, email, password } } }),
  }),
});
...

但是我收到的错误是我不允许在查询中定义输入类型。我的问题是:如何定义这些复杂的输入类型?我似乎无法向ApolloClient提供架构。

1 个答案:

答案 0 :(得分:0)

客户端方面的正确语法只是:

gql`
  mutation userSignUp($input: UserSignUpInput!) {
    createUserByEmail(input: $input) {
      authToken
    }
  }
`

由于您在服务器上定义了输入UserSignUpInput,一切都很顺利。

服务器

input UserSignUpInput {
  firstName: String!,
  lastName: String!,
  email: String!,
  password: String!
}