Мутация GraphQL: Нарушение инварианта: Должно содержать определение запроса - PullRequest
1 голос
/ 17 марта 2019

Я пытаюсь сделать mutation вызов на мой сервер GraphQL из приложения реагирования.Код реакции выглядит следующим образом:

client.query({
  query: gql`
    mutation{
        addTeam(input:{name:"Somename", label:"somelabel"})
        {error, status}
    }`
 }).then((resp: any) => {
      console.log("Success", resp);
 }).catch(err => {
      throw err;
 })

И я получаю следующую ошибку:

enter image description here

Но если я изменюсьтот же запрос, от mutation до query, и внесите необходимые изменения в мой node-graphQL-сервер, чтобы обрабатывать его как query вместо mutation, тот же код работает.

Apollo-Клиент Mutation docs говорит

В GraphQL мутации идентичны запросам в синтаксисе, единственное отличие состоит в том, что вы используете ключевое слово mutation вместо query...

Ох и кстати, тот же mutation запрос РАБОТАЕТ в Playground.Пожалуйста, помогите, ребята, моя работа как бы остановлена, потому что эта проблема.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 17 марта 2019

Вы должны использовать метод mutate клиента для мутаций, а не метод query.Варианты метода можно найти в документе .Apollo придерживается мнения о том, как обрабатываются запросы и мутации, поэтому у каждого метода есть разные параметры, соответствующие поведению каждой операции (например, mutate включает параметр refetchQueries).

client.mutate({
  mutation: gql`
    mutation {
      addTeam(input:{name:"Somename", label:"somelabel"}) {
        error
        status
      }
    }`,
})
1 голос
/ 17 марта 2019

В настоящее время существует проблема GitHub, которая говорит об этой ошибке: https://github.com/apollographql/apollo-client/issues/1539

...