File tree Expand file tree Collapse file tree 3 files changed +25
-3
lines changed
Expand file tree Collapse file tree 3 files changed +25
-3
lines changed Original file line number Diff line number Diff line change @@ -238,7 +238,9 @@ export class QueryClient {
238238
239239 const refetchFilters : QueryFilters = {
240240 ...filters ,
241- active : filters . refetchActive ?? true ,
241+ // if filters.refetchActive is not provided and filters.active is explicitly false,
242+ // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries
243+ active : filters . refetchActive ?? filters . active ?? true ,
242244 inactive : filters . refetchInactive ?? false ,
243245 }
244246
Original file line number Diff line number Diff line change @@ -789,6 +789,27 @@ describe('queryClient', () => {
789789 expect ( queryFn1 ) . toHaveBeenCalledTimes ( 2 )
790790 expect ( queryFn2 ) . toHaveBeenCalledTimes ( 1 )
791791 } )
792+
793+ test ( 'should not refetch active queries when "refetchActive" is not provided and "active" is false' , async ( ) => {
794+ const key1 = queryKey ( )
795+ const key2 = queryKey ( )
796+ const queryFn1 = jest . fn ( )
797+ const queryFn2 = jest . fn ( )
798+ await queryClient . fetchQuery ( key1 , queryFn1 )
799+ await queryClient . fetchQuery ( key2 , queryFn2 )
800+ const observer = new QueryObserver ( queryClient , {
801+ queryKey : key1 ,
802+ queryFn : queryFn1 ,
803+ staleTime : Infinity ,
804+ } )
805+ const unsubscribe = observer . subscribe ( )
806+ queryClient . invalidateQueries ( key1 , {
807+ active : false ,
808+ } )
809+ unsubscribe ( )
810+ expect ( queryFn1 ) . toHaveBeenCalledTimes ( 1 )
811+ expect ( queryFn2 ) . toHaveBeenCalledTimes ( 1 )
812+ } )
792813 } )
793814
794815 describe ( 'resetQueries' , ( ) => {
Original file line number Diff line number Diff line change @@ -240,8 +240,7 @@ export interface RefetchOptions extends ResultOptions {
240240 cancelRefetch ?: boolean
241241}
242242
243- export interface InvalidateQueryFilters
244- extends Omit < QueryFilters , 'active' | 'inactive' > {
243+ export interface InvalidateQueryFilters extends QueryFilters {
245244 refetchActive ?: boolean
246245 refetchInactive ?: boolean
247246}
You can’t perform that action at this time.
0 commit comments