use*_*695 3 javascript reactjs react-native react-apollo
这就是我试图在我的本机应用程序中实现 apollo graphQL 的方式。
但是我确实得到了错误
Could not find "client" in the context of Query or as passed props. Wrap the root component in an <ApolloProvider>
Run Code Online (Sandbox Code Playgroud)
所以我认为我已经做到了这一点,但显然我误解了一些东西。
import React, { Component } from 'react'
import { ApolloProvider, graphql } from 'react-apollo'
import { ApolloClient } from 'apollo-client'
import { createHttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'
import gql from 'graphql-tag'
import Routes from './config/routes'
// Initialize the Apollo Client
const client = new ApolloClient({
link: createHttpLink({ uri: 'http://localhost:3000' }),
cache: new InMemoryCache()
})
// Define query types
const DATA_QUERY = gql`
query {
getVersion {
version
}
}
`
export class App extends Component {
render () {
console.log(this.props)
// ApolloProvider lets us use Apollo Client in descendant components
return (
<ApolloProvider client={client}>
<Routes />
</ApolloProvider>
)
}
}
// Inject query response as `this.props.data`
export default graphql(DATA_QUERY)(App)
Run Code Online (Sandbox Code Playgroud)
开始使用@apollo/react-hooks. 由于错误的表述是相同的,如果它对某人有帮助,我仍然会提供我的答案。
错误是缺乏ApolloHooksProvider内容。我通过改变这个来修复它
<ApolloProvider client={client}>
<Content />
</ApolloProvider>
Run Code Online (Sandbox Code Playgroud)
对此
import { ApolloProvider as ApolloHooksProvider } from '@apollo/react-hooks'
<ApolloProvider client={client}>
<ApolloHooksProvider client={client}>
<Content />
</ApolloHooksProvider>
</ApolloProvider>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8265 次 |
| 最近记录: |