GraphQL 验证错误

问题描述 投票:0回答:2

我正在尝试中继寻宝教程,但在运行 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';
}
javascript reactjs graphql relayjs
2个回答
0
投票

似乎您必须通过

node
viewer
查询所有内容,因为这些是根查询类型上唯一的字段。所以也许可以尝试这个:

query {
  viewer {
    game
  }
}

0
投票

在您的

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
。感觉更好就做吧。

© www.soinside.com 2019 - 2024. All rights reserved.