Проблема с созданием пользовательских отношений в graphql - PullRequest
0 голосов
/ 14 июля 2020

При попытке создать мутацию для создания чего-либо, имеющего какое-либо отношение к моему пользовательскому классу, это не работает. Я пробовал передать идентификатор пользователя, весь объект пользователя и только часть ответа «данные». У кого-нибудь есть на это ответ? (Скорее всего, это проблема моей схемы Apollo. Я новичок в graphql + apollo, буквально день 3.)

import React, { useState } from "react";
import { useMutation } from "@apollo/react-hooks";
import { gql } from "apollo-boost";

const ADD_SHIUR = gql`
  mutation createShiurimMutation($input: createShiurimInput!) {
    createShiurim(data: $input) {
      shiurim {
        title
        description
        link
        user {
          id
        }
      }
    }
  }
`;

export default function AddShiur({ user }) {
  const [addShiur] = useMutation(ADD_SHIUR);
  const [title, CTS] = useState("");
  const [description, CDS] = useState("");
  const [link, CLS] = useState("");
  return (
    <div>
      <input
        className="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"
        id="title"
        type="text"
        placeholder="Title"
        onChange={(e) => CTS(e.target.value)}
      />
      <textarea
        className="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"
        id="description"
        type="text"
        placeholder="Description"
        onChange={(e) => CDS(e.target.value)}
      />
      <input
        className="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"
        id="link"
        type="text"
        placeholder="Shiur link"
        onChange={(e) => CLS(e.target.value)}
      />
      <button
        onClick={() => {
          addShiur({
            variables: {
              title: title,
              description: description,
              link: link,
              user: { id: user.id },
            },
          });
        }}
      >
        Submit
      </button>
    </div>
  );
}
...