首页 > 解决方案 > 在 React Native 上运行时更新 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 流)并且只用 ApolloProvider 包装基于 GraphQL 的导航器.

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

标签: react-nativereact-apolloapollo-client

解决方案


推荐阅读