Кажется, что мое приложение получает данные с сервера только один раз сразу после аутентификации, после этого оно не отправляет никаких новых запросов на сервер, даже если я перезагружаю приложение, только выход из системы и повторный вход делает это один раз.
И только один раз на новых экранах это похоже на проблему с кешем? но я попытался остановить использование кеша, но он все еще не работает.
import { ApolloClient } from 'apollo-client'
import { createHttpLink } from 'apollo-link-http'
import { setContext } from 'apollo-link-context'
import { InMemoryCache } from 'apollo-cache-inmemory'
import AsyncStorage from '@react-native-community/async-storage'
import { refresh } from 'react-native-app-auth'
import { KC_CONFIG } from '../../config/env'
const httpLink = createHttpLink({
uri: 'http://192.168.178.130:4000/',
})
const authLink = setContext(async (_, { headers }) => {
const refreshToken = await AsyncStorage.getItem('refreshToken')
const unwrappedRefresh = JSON.parse(refreshToken)
const result = await refresh(KC_CONFIG, {
refreshToken: unwrappedRefresh,
})
await AsyncStorage.setItem('refreshToken', result.refreshToken)
return {
headers: {
...headers,
authorization: result ? `Bearer ${result.accessToken}` : "",
}
}
})
const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache(),
defaultOptions: { watchQuery: { fetchPolicy: 'no-cache' }, query: { fetchPolicy: 'no-cache' } }
})
export default client