Skip to content

Commit e7d1a1f

Browse files
committed
feat(QueryCache): Remove refetchOnMount option and refetching based on instance count
BREAKING CHANGE: Removes the refetchOnMount option
1 parent a3d23fb commit e7d1a1f

File tree

5 files changed

+1
-27
lines changed

5 files changed

+1
-27
lines changed

docs/src/pages/docs/api.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ const {
3030
refetchInterval,
3131
refetchIntervalInBackground,
3232
queryFnParamsFilter,
33-
refetchOnMount,
34-
neverRefetchOnMount,
3533
isDataEqual,
3634
onError,
3735
onSuccess,
@@ -112,14 +110,6 @@ const queryInfo = useQuery({
112110
- Optional
113111
- If set, this will mark the `initialData` any `initialData` provided as stale and will likely cause it to be refetched on mount
114112
- If a function is passed, it will be called only when appropriate to resolve the `initialStale` value. This can be useful if your `initialStale` value is costly to calculate.
115-
- `refetchOnMount: Boolean`
116-
- Optional
117-
- Defaults to `true`
118-
- If set to `false`, will disable additional instances of a query to trigger background refetches
119-
- `neverRefetchOnMount: Boolean`
120-
- Optional
121-
- Defaults to `false`
122-
- Allows for disabling refetching on mount 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 `neverRefetchOnMount` is set to true though the query will not refetch independent of the number of query instances.
123113
- `queryFnParamsFilter: Function(args) => filteredArgs`
124114
- Optional
125115
- This function will filter the params that get passed to `queryFn`.
@@ -666,8 +656,6 @@ const queryConfig = {
666656
refetchOnWindowFocus: true,
667657
refetchInterval: false,
668658
queryFnParamsFilter: identity,
669-
refetchOnMount: true,
670-
neverRefetchOnMount: false,
671659
isDataEqual: deepEqual,
672660
onError: noop,
673661
onSuccess: noop,

src/core/config.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ export const DEFAULT_CONFIG = {
1616
refetchOnWindowFocus: true,
1717
refetchInterval: false,
1818
queryFnParamsFilter: identity,
19-
refetchOnMount: true,
20-
neverRefetchOnMount: false,
2119
isDataEqual: deepEqual,
2220
onError: noop,
2321
onSuccess: noop,

src/core/queryInstance.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,10 @@ export function makeQueryInstance(query, onStateUpdate) {
5050

5151
instance.run = async () => {
5252
try {
53-
54-
// Don't refetch on mount when 'neverRefetchOnMount' is set, otherwise only refetch if either only one instance of the query exists or 'refetchOnMount' is set
55-
const shouldRefetchOnMount = query.config.neverRefetchOnMount ? false : (query.config.refetchOnMount || query.instances.length === 1);
56-
5753
if(
58-
(!query.state.isSuccess || shouldRefetchOnMount) && // Make sure first load happens, thereafter only if refetch on mount is requested
5954
query.config.enabled && // Don't auto refetch if disabled
6055
!query.wasSuspended && // Don't double refetch for suspense
6156
query.state.isStale // Only refetch if stale
62-
6357
) {
6458
await query.fetch();
6559
}

src/react/tests/ReactQueryConfigProvider.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ describe('ReactQueryConfigProvider', () => {
5454
const config = {
5555
queries: {
5656
refetchOnWindowFocus: false,
57-
refetchOnMount: false,
5857
retry: false,
5958
},
6059
}
@@ -100,7 +99,7 @@ describe('ReactQueryConfigProvider', () => {
10099
await waitFor(() => rendered.findByText('Data: data'))
101100

102101
// tear down and unmount
103-
// so we are NOT passing the config above (refetchOnMount should be `true` by default)
102+
// so we are NOT passing the config above
104103
fireEvent.click(rendered.getByText('unmount'))
105104

106105
act(() => {
@@ -118,15 +117,12 @@ describe('ReactQueryConfigProvider', () => {
118117

119118
const parentConfig = {
120119
queries: {
121-
refetchOnMount: false,
122120
onSuccess: parentOnSuccess,
123121
},
124122
}
125123

126124
const childConfig = {
127125
queries: {
128-
refetchOnMount: true,
129-
130126
// Override onSuccess of parent, making it a no-op
131127
onSuccess: undefined,
132128
},

types/index.d.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,6 @@ export interface BaseQueryOptions<TResult = unknown, TError = Error> {
236236
refetchInterval?: false | number
237237
refetchIntervalInBackground?: boolean
238238
refetchOnWindowFocus?: boolean
239-
refetchOnMount?: boolean
240-
neverRefetchOnMount?: boolean
241239
onSuccess?: (data: TResult) => void
242240
onError?: (err: TError) => void
243241
onSettled?: (data: TResult | undefined, error: TError | null) => void

0 commit comments

Comments
 (0)