Sometimes, we want to make GraphQL query requests with React Apollo in our React app.
In this article, we’ll look at how to make GraphQL query requests with React Apollo in our React app.
Make GraphQL Queries with React Apollo
We can make GraphQL queries with React Apollo by using the client.query
method.
This is available once we update the component by calling withApollo
function.
For instance, we can write:
class Foo extends React.Component {
runQuery() {
this.props.client.query({
query: gql`...`,
variables: {
//...
},
});
}
render() {
//...
}
}
export default withApollo(Foo);
The client.query
method will be available in the props once we call withApollo
with our component to return a component.
The method takes an object that has the query
and variables
properties.
The query
property takes a query object returned by the gql
form tag.
variables
has an object with variables that we interpolate in the query string.
We can also wrap our app with the ApolloConsumer
component.
For example, we can write:
const App = () => (
<ApolloConsumer>
{client => {
client.query({
query: gql`...`,
variables: {
//...
}
})
}}
</ApolloConsumer>
)
We can make our query in here.
For function components, there’s the useApolloClient
hook.
For instance, we can write:
const App = () => {
const client = useApolloClient();
//...
const makeQuery = () => {
client => {
client.query({
query: gql`...`,
variables: {
//...
}
})
}
}
//...
}
The hook returns the client that we can use to make our query.
There’s also the useLazyQuery
hook that we can use to make queries.
For instance, we can write:
const App = () => {
const [runQuery, { called, loading, data }] = useLazyQuery(gql`...`)
const handleClick = () => runQuery({
variables: {
//...
}
})
//...
}
runQuery
lets us make our query.
Conclusion
We can make GraphQL queries with React Apollo by using the client.query
method.
This is available once we update the component by calling withApollo
function.