Новое в работе с 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 - все та же ошибка.
Пожалуйста, хотелось бы получить руководство относительно того, что я делаю неправильно.