Подключение Strapi к NextJS / Apollo Client GraphQL - переменная "$ input" необходимого типа 'XXX' не предоставлена - PullRequest
1 голос
/ 13 февраля 2020

Простите, это очень просто c, но я не работал с GraphQL около года, и мне не хватает очевидного. Я пытаюсь подключить бэкэнд Strapi к клиенту NextJS / Apollo Client с помощью GraphQL, а синтаксис basi c ускользает от меня. (Это «подтверждение концепции» для проекта, над которым мы работаем, просто чтобы увидеть, можем ли мы использовать Strapi, Next JS и многофункциональный текстовый редактор для нашего варианта использования)

Strapi предоставил мне конечную точку createPost

enter image description here

На которую, насколько я могу судить, мне нужно отправить объект с полем data который содержит мой текст. Я использую редактор TinyMCE для редактирования текста и использую аполлоновые хуки для получения мутации

const TheEditor = () => {
    const [addPost, {data}] = useMutation(ADD_POST);
    const [theText, setText] = useState('')

    const handleEditorChange = (content, editor) => {
        console.log('Content was updated:', content);
        setText(content)
    }

    return <>
        <Editor apiKey='4564654765476547654'
                initialValue="<p>This is the initial content of the editor</p>"
                init={{
                    height: 500,
                    menubar: false,
                    plugins: [
                        'advlist autolink lists link image charmap print preview anchor',
                        'searchreplace visualblocks code fullscreen',
                        'insertdatetimse media table paste code help wordcount'
                    ],
                    toolbar:
                        'undo redo | formatselect | bold italic backcolor | \
                        alignleft aligncenter alignright alignjustify | \
                        bullist numlist outdent indent | removeformat | help'
                }}
                onEditorChange={handleEditorChange}
        />
        <button onClick={async e => {
            e.preventDefault();
            await addPost({variables: {data:theText}});
        }}>ENTER
        </button>

    </>
}

export default withApollo(TheEditor);

Моя мутация

const ADD_POST = gql`
      mutation ADD_POST($input: createPostInput!) {
        createPost(input: $input) {
          post {
          text 
          }
        }
      }
`;

Но я получаю ошибку

enter image description here

Очевидно, проблема в том, что мне нужно go вернуться и снова изучить основы синтаксиса GraphQL. Тем временем я надеюсь, что кто-то может указать (вопиющие) ошибки моих путей. Я следовал наряду с учебником Apollo здесь , но я не могу сделать прыжок от их кода к моему. Любая помощь высоко ценится.

1 Ответ

1 голос
/ 14 февраля 2020

имя вашей переменной вводится, а не данные

<button onClick={async e => {
                e.preventDefault();
                await addPost({variables: { input:theText }});
            }}>ENTER
</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...