对于计数器,我使用refetchInterval
选项通过react查询定期轮询后端:
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