在子视图中获取 apollo 客户端以手动使用查询

Getting apollo client in sub view to use queries manualy

我是 react-native 的新手,我不了解有关在我的应用程序中使用 ApolloClient 的信息。我无法理解如何使用客户端向我的 graphql api 发出请求。这是我的 App.js 文件。

import React from 'react';
import { ApolloProvider, Query } from 'react-apollo';
import Client from './src/Network/client';
import AppContainer from './src/Navigation/navigator';

export default class App extends React.Component {

 constructor(props) {
    super(props);
    this.client = new Client().createClient();
}

render() {
    return (
        <ApolloProvider client = {this.client}>
            <AppContainer/>
        </ApolloProvider>
    );
}
}

因此,我的 AppContainer 是一个基本的堆栈导航器。我读过我应该使用来自 react-apollo 的组件查询,但我想在我的查询中有更多 "control" 并尽可能手动使用它们。我想在我的导航器的子视图中有一个类似函数的东西,它可以做:

function getUserInfo() {
  client.query({MyGraphQuery})... ;
}

如何表演这个技巧?

提前致谢

我不是 100% 肯定。我自己从来没有这样做过。但我相信你必须这样做......

function async getUserInfo() {
  return await client.query(MyGraphQuery);
}
  1. 我将函数设为异步
  2. 等待后返回了查询结果
  3. 删除 gql 标记查询定义周围的 {}。 (确保它是一个带有 gql 标记的查询)。不过,我对这种语法并不满意。

希望这对您有所帮助。