Я новичок в 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
Пожалуйста, взгляните на
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.
Я не могу отследить ошибку Пожалуйста, помогите мне. Спасибо! заранее





Вы вызываете функцию 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
}
}
}