Skip to content

Commit 2e74b9c

Browse files
committed
feat(QueryCache): add option to alwaysRefetchOnMount
1 parent b01d269 commit 2e74b9c

File tree

4 files changed

+9
-1
lines changed

4 files changed

+9
-1
lines changed

docs/src/pages/docs/api.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ const {
3131
refetchIntervalInBackground,
3232
queryFnParamsFilter,
3333
refetchOnMount,
34+
alwaysRefetchOnMount,
3435
isDataEqual,
3536
onError,
3637
onSuccess,
@@ -115,6 +116,10 @@ const queryInfo = useQuery({
115116
- Optional
116117
- Defaults to `true`
117118
- If set to `false`, will disable additional instances of a query to trigger background refetches
119+
- `alwaysRefetchOnMount: Boolean`
120+
- Optional
121+
- Defaults to `false`
122+
- Always refetch on mount sets refetching independent of the number of query instances. If `refetchOnMount` is set to false but only one query instance exists the query would refetch anyway. If `alwaysRefetchOnMount` is set to false though the query will not refetch independent of the number of instances
118123
- `queryFnParamsFilter: Function(args) => filteredArgs`
119124
- Optional
120125
- This function will filter the params that get passed to `queryFn`.
@@ -662,6 +667,7 @@ const queryConfig = {
662667
refetchInterval: false,
663668
queryFnParamsFilter: identity,
664669
refetchOnMount: true,
670+
alwaysRefetchOnMount: false,
665671
isDataEqual: deepEqual,
666672
onError: noop,
667673
onSuccess: noop,

src/core/config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export const DEFAULT_CONFIG = {
1717
refetchInterval: false,
1818
queryFnParamsFilter: identity,
1919
refetchOnMount: true,
20+
alwaysRefetchOnMount: false,
2021
isDataEqual: deepEqual,
2122
onError: noop,
2223
onSuccess: noop,

src/core/queryInstance.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export function makeQueryInstance(query, onStateUpdate) {
5555
query.config.enabled && // Don't auto refetch if disabled
5656
!query.wasSuspended && // Don't double refetch for suspense
5757
query.state.isStale && // Only refetch if stale
58-
(query.config.refetchOnMount || query.instances.length === 1)
58+
((query.config.refetchOnMount || query.instances.length === 1) || query.config.alwaysRefetchOnMount)
5959
) {
6060
await query.fetch()
6161
}

types/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ export interface BaseQueryOptions<TResult = unknown, TError = Error> {
237237
refetchIntervalInBackground?: boolean
238238
refetchOnWindowFocus?: boolean
239239
refetchOnMount?: boolean
240+
alwaysRefetchOnMount?: boolean
240241
onSuccess?: (data: TResult) => void
241242
onError?: (err: TError) => void
242243
onSettled?: (data: TResult | undefined, error: TError | null) => void

0 commit comments

Comments
 (0)