在Apollo React文档http://dev.apollodata.com/react/queries.html#basics中,有显示组件显示时自动获取的示例,但是我想在单击按钮时运行查询。我看到一个在单击按钮时“重新”获取查询的示例,但我不希望它最初进行查询。我看到有一种方法可以调用变异,但是您如何调用查询?
Apollo GraphQL React-如何点击查询
您可以通过使用withApollo
高阶组件传递对Apollo Client的引用来做到这一点,如此处所述:https : //www.apollographql.com/docs/react/api/react-apollo.html#withApollo
然后,您可以client.query
像这样调用传入的对象:
class MyComponent extends React.Component {
runQuery() {
this.props.client.query({
query: gql`...`,
variables: { ... },
});
}
render() { ... }
}
withApollo(MyComponent);
出于好奇,对单击事件运行查询的目的是什么?也许有更好的方法可以实现基本目标。
从3.0版开始,您现在可以通过两种方式执行此操作。
client.query
第一种方法是调用
ApolloClient
的query
方法。这将返回一个Promise,它将解决查询的结果。您可以使用withApollo HOC 获取对客户端的引用:另外,您也可以使用ApolloConsumer获取客户端:
或useApolloClient挂钩:
useLazyQuery
第二种方法是使用useLazyQuery钩子: