Я хочу обновить кеш после создания мутации.
Что я пытаюсь сделать? У меня есть метка, которая показывает количество и кнопки создания и удаления.
когда пользователь нажимает кнопку создания, значение счетчика уменьшается на единицу. и нажатие на кнопку «Удалить» увеличит количество на единицу.
Теперь, когда нажата кнопка «Создать», я хочу обновить значение счетчика, не обновляя страницу. чтобы сделать это, я думал обновить кэш внутри мутации, в которой происходит создание мутации.
ниже - мой код,
import { useCreate, useDelete } from '../some/some.mutation-hooks';
import { useGetCount } from '../count/GetCount.query-hooks';
function Parent () {
const { available } = useGetCount();
const count = available.count;
create_item = asyc () => {
try {
await create({ email: email});
}
}
render = ( ) => {
return (
<span>Label Count</span>
<span>{Count}</span>
<Button onClick={create_item}>Create</Button>
)
}
}
хук мутации для создания - как показано ниже,
const create = (variables: CreateInput) => {
return mutation({
variables,
update: (cache, { data }) => {
if (data) {
const cacheData1: any = cache.readQuery({ query: LIST });
cacheData.list.push(data.create);
cache.writeQuery({ query: LIST, data: cacheData });
const cacheData2: any = cache.readQuery({query: getCount});
cacheData2.//////////////////////do not know with what value or how to get new count
//value to
//update cachedata2 with new value of count
cache.writeQuery({query: getCount, data: cacheData });
}
},
});
};
Может кто-нибудь помочь мне понять, как обновить это значение счетчика. я не хочу использовать refetchquery..это работает ... но я хочу использовать кэш обновлений,
Может кто-нибудь дать некоторое представление об этом. Спасибо.
return {create, result}; };