мутация graphql с использованием ввода в типе, как прочитать значение полей ввода в реагировать? - PullRequest
0 голосов
/ 23 января 2020

Я новичок в этом, так что все еще скучаю по многим знаниям и не могу найти ответ где-нибудь в Интернете. Я надеюсь, что кто-то может помочь мне с этим. Я проверил мутацию при бессоннице, и это прекрасно работает! Мой вопрос заключается в том, как получить переменные мутации createOrder.

Это сообщение об ошибке, которое я получаю: Unhandled Rejection (Error): GraphQL error: Internal server error. Также есть новые данные, добавленные в базу данных, но они все пустые (по умолчанию || null).

Ниже вы можете увидеть, где я пытаюсь использовать мутацию createOrder и прочитать ввод.

const ADD_TO_ORDERS = gql`
    mutation createOrder(
      $input: OrderInput!)
           {createOrder(input: $input) {
              klant_voornaam
              klant_achternaam
              klant_straat
              klant_huisnummer
              klant_postcode
              klant_plaats
              klant_land
              klant_telnr
              klant_email  
          } 
        }
    `;

        class Addressform extends React.Component {
          render() {
            let input;
            return (
              <div className="container" >
                <Mutation mutation={ADD_TO_ORDERS} >
                  {(createOrder, { loading, error }) => {
                    if (loading) return <p>Relax, it's worth the wait...</p>
                    if (error) return <p>Looks like we've got a problem...</p>
                    return (
                      <div>
                        <h2 className="address form">Address form</h2>
                        <Card body>
                          <Form onSubmit={e => {
                            e.preventDefault();
                            createOrder({ variables: { input: { input: input.value } } });
                            input.value = '';
                            this.props.history.push('/checkout');
                          }}>

                            <Form.Row>
                              <Form.Group as={Col} controlId="formGridFirstName">
                                <Form.Label>First Name</Form.Label>
                                <Form.Control ref={node => { input = { node }; }} name="firstname" type="text" placeholder="First Name" required />
                              </Form.Group> 

Мутация CreateOrder:

createOrder(
    input: OrderInput! @spread
    ): Order @field(resolver: "OrderMutator@create")

Тип заказа:

type Order {
    klant_voornaam: String!
    klant_achternaam: String!
    klant_straat: String!
    klant_huisnummer: String!
    klant_postcode: String!
    klant_plaats: String!
    klant_land: String!
    klant_telnr: String!
    klant_email: String!
}

Тип входного заказа:

input OrderInput {
    klant_voornaam: String
    klant_achternaam: String
    klant_straat: String
    klant_huisnummer: String
    klant_postcode: String
    klant_plaats: String
    klant_land: String
    klant_telnr: String
    klant_email: String
}

Мутация бессонницы работает Пожалуйста дайте мне знать, если вам нужна дополнительная информация или код. Заранее спасибо!

...