Apollo readFragment и dataIdFromObject

#reactjs #typescript #apollo-client

#reactjs #машинописный текст #apollo-клиент

Вопрос:

Я настроил ApolloClient так:

 import { ApolloClient, InMemoryCache } from '@apollo/client';

export const apolloClient = new ApolloClient({
    uri: 'http://localhost:4000',
    cache: new InMemoryCache({
        dataIdFromObject: obj => obj.id as string,
        addTypename: false
    })
});
 

Теперь я хочу использовать apolloClient.readFragment для чтения чего-либо из кэша, однако он продолжает возвращать пустой объект {} , даже если он выглядит так, как будто он находится в кэше.

             console.log('readFragment',optimisticUpdate)
            const {id,fragment,data} = optimisticUpdate
            rollback = apolloClient.readFragment({id,fragment},true)
            console.log("ROLLBACK",rollback)
            apolloClient.writeFragment(optimisticUpdate)
 

введите описание изображения здесь

Если я удалю параметры dataIdFromObject и addTypename из InMemoryCache и изменю id , чтобы включить имя типа, тогда, похоже, это сработает, но я не понимаю, почему я должен это делать, потому что все мои идентификаторы гарантированно уникальны.