Ошибка проверки GraphQL

Я пробую урок по ретрансляции сокровищ, но получаю следующую ошибку при запуске npm start. Я обновил мою схему, запустив npm run update-schema.

Uncaught Error: GraphQL validation error ``Cannot query field "game" on type "Query".`` in file `/home/tharaka/My Projects/relay-treasurehunt/js/routes/AppHomeRoute.js`. Try updating your GraphQL schema if an argument/field/type was recently added.

Вот что внутри моего AppHomeRoute.js

import Relay from 'react-relay';

export default class extends Relay.Route {
    static path = '/';  
    static queries = {
        game: () => Relay.QL`query { game }`,
    };
    static routeName = 'AppHomeRoute';
}

2 ответа

Кажется, вы должны запросить все через node или же viewerпотому что это единственные поля в корневом типе запроса. Так что, возможно, попробуйте это:

query {
  viewer {
    game
  }
}

В вашем data/schema.js файл...

var queryType = new GraphQLObjectType({
  name: 'Query',
  fields: () => ({
    node: nodeField,
    // Add your own root fields here
    viewer: {
      type: gameType,
      resolve: () => getGame(),
    },
  }),
});

Изменить viewer собственность на game, Как это...

var queryType = new GraphQLObjectType({
  name: 'Query',
  fields: () => ({
    node: nodeField,
    // Add your own root fields here
    game: {
      type: gameType,
      resolve: () => getGame(),
    },
  }),
});

Имя этого свойства должно соответствовать полю, которое вы запрашиваете в своем фрагменте на домашнем маршруте. Я полагаю, в качестве альтернативы вы могли бы изменить свой маршрут на запрос viewer вместо game, Делай, что лучше.

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