使用apollo-link-state查询会出现错误&#34;字段<name>不存在于类型&#39;查询&#39;&#34;

时间:2018-04-09 04:26:36

标签: apollo react-apollo

我对Apollo和GraphQL都很陌生。我跟随this apollo-link-state-tutorial跟随,并且遇到了绊脚石。

我已使用currentGame属性默认设置我的链接。

const stateLink = withClientState({
  cache: stateCache,
  defaults: {
    currentGame: {
      __typename: 'currentGame',
      teamAScore: 0
    }
  }
})

我在我的客户端使用它。

const client = new ApolloClient({
  stateCache,
  link: stateLink,
  ...
})

我定义了这样的GraphQL查询:

const getCurrentGame = gql`
  query {
    currentGame @client {
      teamAScore
    }
  }
`

我将它连接到我的组件的道具。

export default compose(
  graphql(getCurrentGame, {
    props: ({ data: { currentGame }}) => ({
      currentGame
    })
  })
)

这会在控制台中生成错误。

[GraphQL error]: Message: Field 'currentGame' doesn't exist on type 'Query', Location: [object Object], Path: undefined

我已经完成了我的代码,并且无法发现什么是错字或简单的错误。如何调试此错误消息,或者它表明问题是什么?

更新:我尝试按照Tal Z的建议添加解析器,但仍然收到相同的错误消息。

const stateCache = new InMemoryCache()
const stateLink = withClientState({
  cache: stateCache,
  resolvers: {
    Query: {
      currentGame: () => {
        return {}
      }
    }
  },
  defaults: defaultState
})

对于它的价值,我发现的大多数示例存储库都对没有定义解析器的字段进行查询。例如,this queries for todo list items,但the only resolver defined is for a mutation

1 个答案:

答案 0 :(得分:1)

好吧,我想通了......这个打破了:

import ApolloClient from 'apollo-boost'

这有效:

import ApolloClient from 'apollo-client'

我不知道有什么不同。