У меня есть имя объекта countCacheData с полями book_count, pen_count и __typename. Теперь я хочу обновить его, уменьшив значение book_count на 1 и сохранив значение pen_count таким же. поэтому я делаю что-то вроде ниже,
const createItem = (variables: CreateItemInput) => {
return mutation({
variables,
update: (cache, { data }) => {
if (data) {
const ListCacheData: any = cache.readQuery({
query: LIST_ITEMS,
});
ListCacheData.list.push(data.createShare);
cache.writeQuery({ query: LIST_ITEMS, data: ListCacheData });
const countCacheData: any = cache.readQuery({
query: GET_COUNT,
});
const book_count =
countCacheData.getRemainingCount.book_count - 1;
const {pen_count} = countCacheData.getRemainingCount;
countCacheData.getRemainingCount = {
book_count,
pen_count,
__typename: 'ResourceCount',
};
cache.writeQuery({
query: GET_COUNT,
data: countCacheData,
});
}
},
});
return { createItem, result };
};
Теперь, как вы видите в коде выше, я переписываю и присваиваю значения book_count и pen_count, а затем присваиваю его countCacheData и затем записываю в кеш с данными: countCacheData .подобно ниже
const book_count = countCacheData.getRemainingCount.book_count - 1
const {pen_count} = countCacheData.getRemainingCount;
countCacheData.getRemainingCount = {
book_count,
pen_count,
__typename: 'ResourceCount',
};
cache.writeQuery({
query: GET_COUNT,
data: countCacheData,
});
Как лучше переписать этот код? Может ли кто-нибудь помочь мне с этим. спасибо.