Ошибка GraphQL-Apollo-Mutation: «Ошибка GraphQL: имя переменной типа String! Указано недопустимое значение» - PullRequest
0 голосов
/ 07 ноября 2018

Новое в работе с GraphQL и Apollo. Попытка заставить простой компонент Mutation работать. Я снимаю значения с двух входов и пытаюсь передать их в функцию мутации, но получаю следующую консольную ошибку:

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

Ошибка GraphQL: Переменная фамилия типа String! было предоставлено неверное значение

Я запускаю функцию мутации при отправке формы. Ниже приведен код для моего компонента:

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 - та же ошибка. Также попытался выполнить рефакторинг в компонент с состоянием и передал переменные в качестве опоры компоненту Mutation - все та же ошибка.

Пожалуйста, хотелось бы получить руководство относительно того, что я делаю неправильно.

...