Реагирует на встроенное постоянное хранилище AsyncStorage с помощью Apollo3

#reactjs #react-native #graphql #apollo

#reactjs #react-native #graphql #apollo

Вопрос:

Я пытаюсь создать приложение с постоянным AsyncStorage. Следуя этим документам, я приземлился здесь.. Проблема здесь в том, что он говорит, что клиент не определен, потому что он находится в функции. Но в документах говорится, что persistCache должен быть объявлен в асинхронной функции..

Может ли кто-нибудь помочь мне решить эту проблему элегантным способом?

 import AsyncStorage from "@react-native-async-storage/async-storage";
import { persistCache, AsyncStorageWrapper } from "apollo3-cache-persist";

function App() {
    useEffect(() => {
        async function init() {
            const cache = new InMemoryCache();
            await persistCache({
                cache,
                storage: new AsyncStorageWrapper(AsyncStorage),
            });
            const client = new ApolloClient({
                link: authLink.concat(httpLink),
                cache: new InMemoryCache(),
            });
        }
        init();
    }, []);

    return (
        <ApolloProvider client={client}>
            <AuthProvider>
                <Navigation />
            </AuthProvider>
        </ApolloProvider>
    );
}

export default App;

 

Комментарии:

1. const [client, setClient] = useState(undefined); отсутствует … как в документах … и «повторное использование» cache , не создавайте другой, новый экземпляр позже

2. Я считаю, что документация не обновлена github.com/apollographql/apollo-cache-persist/issues/412