В качестве счетчика я периодически опрашиваю бэкэнд с помощью реагирующего запроса, используя опцию refetchInterval
:
const { items } = useQuery(
["queryKey"],
requestFn,
{
refetchInterval: 5000,
}
);
...
<Counter>{items.length}</Counter>
Увы, когда я добавляю или удаляю элемент, на отражение в счетчике уходит до 5 секунд.
Как я могу заставить счетчик обновляться немедленно?
Я думал запустить запрос с тем же ключом один раз после процедуры добавления/удаления, но это не сработало.
addItem().then(() => useQuery(
["queryKey"],
requestFn,
))
Вы, вероятно, захотите сделать queryClient.invalidateQueries(["queryKey"])
после запуска мутации, потому что это сразу же повторно извлечет новые данные. Это задокументировано здесь: https://tanstack.com/query/v4/docs/guides/invalidations-from-mutations