Ошибка проверки 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
, Делай, что лучше.