react-query:使用useQueries()时QueryOptions不生效问题
useQueries公共查询选项不生效的解决办法
你这段代码里的公共配置(比如refetchOnWindowFocus: false)没生效,核心问题是你把COMMON_QUERY_OPTIONS作为一个独立属性传给了每个查询对象,而不是把里面的配置项合并到查询配置里。React Query的useQueries只会识别查询对象内的标准配置键(如retry、refetchOnWindowFocus),不会读取你自定义的COMMON_QUERY_OPTIONS这个键下的内容。
修正后的代码如下:
const slidesID = ['11111', '22222', '33333']; const COMMON_QUERY_OPTIONS = { retry: false, refetchOnWindowFocus: false, refetchOnMount: false, } as const; const slideQueries = useQueries( slidesID.map((slideID) => { return { queryKey: ['slides', 'slide', slideID], queryFn: () => getSlide(slideID), // 使用对象展开运算符合并公共配置 ...COMMON_QUERY_OPTIONS, }; }), );
用...把COMMON_QUERY_OPTIONS里的所有属性展开到每个查询对象中,每个查询就能正确应用这些公共选项了。
内容的提问来源于stack exchange,提问作者Juan Menendez
相关产品推荐
相关产品推荐

