#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
, чтобы включить имя типа, тогда, похоже, это сработает, но я не понимаю, почему я должен это делать, потому что все мои идентификаторы гарантированно уникальны.