GraphQL-Apollo-Mutation错误:“ GraphQL错误:提供了String!类型的变量名称,值无效”

时间:2018-11-07 20:11:35

标签: reactjs graphql apollo react-apollo

使用GraphQL和Apollo的新功能。试图使一个简单的Mutation组件起作用。我从两个输入中删除了值,并试图将它们传递给一个突变函数,但收到以下控制台错误:

ApolloError.js:58 Uncaught (in promise) Error: GraphQL error: Variable name of type String! was provided invalid value

GraphQL错误:字符串类型的变量姓!被提供了无效的值

我在提交表单时触发了突变功能。以下是我的组件的代码:

import React from 'react'
import { Mutation } from 'react-apollo'
import gql from 'graphql-tag'


const ADD_PERSON_MUTATION = gql`
  mutation createPerson($name: String!, $surname: String!) {
    createPerson(name: $name, surname: $surname) {
      id
      name
      surname
    }
  }
`
export default function CreatePerson () {
  let nameInput, surnameInput;

  return (
    <Mutation mutation={ADD_PERSON_MUTATION}>
      {(createPerson, {data}) => (
        <form
          onSubmit={(e) => {
            e.preventDefault()
            createPerson({variables: { name: nameInput.value, surname: surnameInput.value }})
            nameInput = ""
            surnameInput = ""
          }}
          >
             <input
              ref={node => {
                nameInput = node;
              }}
            />
             <input
              ref={node => {
                surnameInput = node;
              }}
            />
            <button type="submit">Submit</button>
          </form>
      )}
    </Mutation>
  )
}

我尝试将其愚弄,不使用变量,而是将伪字符串提交到createPerson函数中-同样的错误。还尝试将其重构为有状态组件,并将变量作为prop传递给Mutation组件-仍然是相同的错误。

请,我希望对我做错的事情提供一些指导。

0 个答案:

没有答案