我需要使useMutation
的onSuccess
中的一些查询无效。
我有一个queryKey
模式,如下所示:
.....
1-["questions", "by_vendor" , "{vendor_code}" , "by_status", "{status}"]
2-["questions", "by_status", "{status}"]
3-["questions", "by_vendor", "{vendor_code}"]
.....
我使用useQueryClient
来获取查询客户机。
我需要使使用"by_status"
的querykeys
无效。
是否有访问active queryKeys
的方法。
有一些方法类似于queryClient.getQueryData()
,但都需要预先使用queryKey
。
谢谢你,谢谢你
2条答案
按热度按时间umuewwlo1#
我建议你稍微重新组织一下你的查询键。使用对象作为键比使用建议的“列表”样式要容易得多。
然后,您可以稍后使用以下命令使它们无效:
有关更多信息,请查看Effective React-Query Keys和Query Invalidation
xa9qqrwz2#
正如Chad S所提到的,无效查询可以通过使用对象作为键来完成,该方法将通过匹配来工作,它不一定需要精确的查询来匹配,并且有一个标记用于此:
exact: true
.但是要获得querykeys,如果这是你正在寻找的,那么这里有一个解释。
要访问客户端正在侦听的queryKeys,请使用
useQueryClient
挂钩。使用呼叫的拦截,可以存取方法:
getQueryCache()
。这将返回客户端连接到的查询缓存。参考现在要获取活动的查询键,调用
queryCache
中的方法getAll()
,这将返回一个Query
数组。现在可以访问QueryKey
。