在React Native上的运行时更新Apollo Client对象

时间:2018-07-06 15:01:37

标签: react-native react-apollo apollo-client

我正在一个项目中,在该项目中,我使用Rest API进行数据(令牌)认证,以便稍后将其传递给GraphQL API。 整个应用程序都包装在ApolloProvider对象中,如下例所示。

const Client = new ApolloClient({
    link: new HttpLink({
        uri: [Broker Address],
        headers: {
            authorization: `[Bearer token to be retrieved using a Rest API]`,
         }
    }),
    cache: memoryCache
})

包装代码:

<ApolloProvider client={Client}>
    <AppNavigator />      
</ApolloProvider>

但是,由于我是在从Rest API进行身份验证后检索到graphql令牌的,因此我将无法在初始化时传递数据。

一个显而易见的选择(我可能是错误的,因为我是JS和RN的新手)替代方法是有两个单独的导航器(一个用于Rest auth流,另一个用于GraphQL流),并且仅包装基于GraphQL的导航器。导航器与ApolloProvider。

但是只是想检查一下是否有一种方法可以稍后在运行时动态更新ApolloProvider包装器上的HttpLink或ApolloClient对象?

0 个答案:

没有答案