Переменная "$ charactersID" необходимого типа "ID!" не был предоставлен., Местоположение: [объект Object], Путь: undefined - PullRequest
0 голосов
/ 28 мая 2020

Я использую apollo, graphql, react, mon go и пытаюсь создать нового пользователя на стороне клиента, указав только имя и адрес электронной почты, и разместить его на домашней странице, но я получаю эту ошибку, когда нажимаю кнопку отправки button - Переменная "$ charactersID" необходимого типа "ID!" не был предоставлен., Расположение: [объект Объект], Путь: не определен. Я попытался установить переменную для идентификатора символа, но не уверен, правильно ли я это делаю

import React, {Component} from 'react'
import {Add_User} from '../gql/mutations'
import {Mutation} from 'react-apollo'

class Signup extends Component{
render(){
    let name, email;
    return(
      <Mutation mutation={Add_User} onCompleted={() => this.props.history.push('/')}>
          {(addUser, {loading, error}) => (
              <div>
                  Create new user
                <form onSubmit= {e=>{e.preventDefault(); 
                    addUser({variables: {name: name.value, email: email.value }})
                    name.value = ""
                    email.value = ""
                    }}>
                 <input type="text" name="name" ref={node => { name = node}} placeholder 
    ="NAME"/> 
                 <input type="text" name="email" ref={node => { email = node}} placeholder 
    ="EMAIL"/> 
                 <input type="submit" value="Submit" />
              </form>

             {loading && <p>Loading...</p>}
             {error && <p>Error : Please try again </p>}
              </div>

          )}
      </Mutation>
    )
}
}

export default Signup;

Мутации

import gql from 'graphql-tag'

export const Add_User = gql`
mutation addUser($name: String!, $email: String, $description: String, $totalwins: Int, 
$charactersID: ID!){
addUser(name: $name, email: $email, description: $description, totalwins: $totalwins, 
charactersID: $charactersID){
    _id
    email
    name
    description
    totalwins
    charactersID{
        name  
        wins
        losses
        percentage
        image
    }
}
}
`

1 Ответ

0 голосов
/ 28 мая 2020

Ваша операция включает пять переменных:

$name: String!
$email: String
$description: String
$totalwins: Int
$charactersID: ID!

Только две из них не равны нулю, что означает, что они обязательны - name и charactersID. Однако при вызове функции мутации вы предоставляете только name и email:

addUser({variables: {name: name.value, email: email.value }})
...