useQuery не кэширует данные даже после упоминания ключевых полей в политиках кэширования.

avatar
Keshav jha
1 июля 2021 в 16:31
77
0
0

Клиентский объект аполлона реагирует на графикql.

export const graphqlClient= (token: string, others?: object) =>
  new ApolloClient({
    link: authLink(token, others).concat(httpLink),
    cache: new InMemoryCache({
      typePolicies: {
        venue_policy: {
          queryType: true,
          keyFields: ['venueid'],
        },
        venue_amenities: {
          keyFields: [['venueid', 'amenityid']],
        },
      },
    }),
  })

Вот мой запрос graphql:

query VenueAmenitiesByVenueId($venueId: uuid) {
    venue_amenities(where: { venueid: { _eq: $venueId } }) {
      venueid
      isactive
      amenityid
      __typename
    }
  }

Вызов:

 const {
    data: venueamenities,
  }: { data: undefined | getVenueAmenitiesData } = useQuery(GET_AMENITIES, {
    variables: { venueId: user?.role?.venue?.id },
  })

Я проверяю данные кэша, используя: APOLLO_CLIENT.cache.data

Источник

Ответы (0)