我对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。
答案 0 :(得分:1)
好吧,我想通了......这个打破了:
import ApolloClient from 'apollo-boost'
这有效:
import ApolloClient from 'apollo-client'
我不知道有什么不同。