Вы можете использовать apollo-link-context для изменения ваших запросов. Вы можете кэшировать значения, как показано, если вы не извлекаете их при каждом запросе.
let token
let uri
const contextLink = setContext(async () => {
if (!token) {
token = await getTokenAsync()
}
if (!uri) {
uri = await getUriAsync()
}
return { uri, token }
});
const client = new ApolloClient({
...
link: ApolloLink.from([
contextLink,
httpLink,
])
})
Выше приведен предпочтительный способ динамической установки этих параметров. Кроме того, вы можете просто получить токен и URI перед рендерингом вашего ApolloProvider, а затем динамически создать экземпляр клиента на основе значений.