У меня следующий запрос:
const FETCH_CUSTOMERS = gql`
query customers($cursor: Int!, $pageNumber: Int!) {
customers(cursor: $cursor, pageNumber: $pageNumber)
@connection(key: "customers", filter: ["pageNumber"]) {
customers {
customerID
firstname
lastname
email
phone
CustomerPhoto {
photo
}
}
count
}
}
`;
Когда выполняется мутация, я пытаюсь обновить кэш.Проблема возникает, когда выполняется операция cache.writeQuery (...) .
<Mutation
mutation={UPDATE_CUSTOMER}
update={(
cache,
{
data: {
updateCustomer: { customer }
}
}
) => {
const { page } = queryString.parse(search);
const parsePageInt = parseInt(page, 10);
const {
customers: { customers }
} = cache.readQuery({
query: FETCH_CUSTOMERS,
variables: { pageNumber: parsePageInt }
});
const updatedCustomersArray = customers.map(customerFromCache => {
return customerFromCache.customerID === customer.customerID
? customer
: customerFromCache;
});
cache.writeQuery({
query: FETCH_CUSTOMERS,
variables: { pageNumber: parsePageInt },
data: { customers: { customers: updatedCustomersArray } }
});
/>
Кэш обновлен, но я получаю следующую ошибку:
В начале проекта я добавил в свойство объекта InMemoryCache addTypename:ложь .Это выглядело как плохое решение, потому что я недавно решил использовать запрос с интерфейсами и встроенными фрагментами, для которых в схеме требуется свойство __ typename .
Вот форма кэшированного запроса в кеше apollo
Есть ли какой-нибудь простой способ, как это решить?