Переданный синтаксическому анализатору не является допустимым GraphQL DocumentNode. вам может потребоваться использовать 'graphql-tag' или другой метод для преобразования вашей операции в документ

Я новичок в react-native, graphql и Aws AppSync. Мы пытались создать приложение, поддерживающее реакцию, используя aws appsync. Когда я запускаю реагировать-родной run-android, он выдает ошибку, говоря

passed to parser was not a valid GraphQL DocumentNode.you may need to use 'graphql-tag' or another method to convert your operation into a document

Пожалуйста, взгляните на

https://i.stack.imgur.com/hr5fA.jpg

URL изображения для получения ссылки.

 import { graphql, compose } from 'react-apollo';
import gql from 'graphql-tag';

 const listMessages = graphql(gql`
    query listMessages {
      listMessages {
        id
        text
        createdAt
        sentBy {
          id
          name
        }
      }
    }`)
  const createMessage = graphql(gql`
  mutation createMessage($text: String!, $sentById: ID!) {
      createMessage(input : {
        id : $sentById
        text : $text
        createdAt : "1/06/2018"
        updateAt:"1/06/2018"
      }){
       sentBy {
         id
         name
      }
      }
     }`)


     export default compose(
        graphql(createMessage,{
          options: {
            fetchPolicy: 'cache-and-network'
          }
        }, {name : 'createMessageMutation'}),
        graphql(listMessages, {
          options : {
            fetchPolicy: 'cache-and-network'
          }
        }, {name: 'listMessagesQuery'})
      )(Chat)

Приведенный выше код является базовой реализацией graphql.

Я не могу отследить ошибку Пожалуйста, помогите мне. Спасибо! заранее

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
0
5 283
2

Ответы 2

Вы вызываете функцию graphql дважды - один раз в вашем определении listMessages и createMessage, а затем еще раз в вашем операторе экспорта. Вам нужно изменить способ определения переменных, которые вы используете для своих запросов:

const createMessage = gql`
  mutation createMessage($text: String!, $sentById: ID!) {
    createMessage(input : {
      id : $sentById
      text : $text
      createdAt : "1/06/2018"
      updateAt:"1/06/2018"
    }) {
      sentBy {
        id
        name
      }
    }
 }`

Вы можете использовать только GQL для определения ваших запросов.

Вы можете использовать и то, и другое.

Не нужно добавлять graphql.

import gql from 'graphql-tag';

const listMessages = gql
    query listMessages {
      listMessages {
        id
        text
        createdAt
        sentBy {
          id
          name
        }
      }
    }

Другие вопросы по теме