Skip to content

Commit 298118d

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

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
@@ -31,8 +31,6 @@ const {
3131
refetchInterval,
3232
refetchIntervalInBackground,
3333
queryFnParamsFilter,
34-
refetchOnMount,
35-
neverRefetchOnMount,
3634
isDataEqual,
3735
onError,
3836
onSuccess,
@@ -113,14 +111,6 @@ const queryInfo = useQuery({
113111
- Optional
114112
- If set, this will mark any `initialData` provided as stale and will likely cause it to be refetched on mount
115113
- 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.
116-
- `refetchOnMount: Boolean`
117-
- Optional
118-
- Defaults to `true`
119-
- If set to `false`, will disable additional instances of a query to trigger background refetches
120-
- `neverRefetchOnMount: Boolean`
121-
- Optional
122-
- Defaults to `false`
123-
- 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.
124114
- `queryFnParamsFilter: Function(args) => filteredArgs`
125115
- Optional
126116
- This function will filter the params that get passed to `queryFn`.
@@ -669,8 +659,6 @@ const queryConfig = {
669659
refetchOnWindowFocus: true,
670660
refetchInterval: false,
671661
queryFnParamsFilter: identity,
672-
refetchOnMount: true,
673-
neverRefetchOnMount: false,
674662
isDataEqual: deepEqual,
675663
onError: noop,
676664
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.test.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ describe('ReactQueryConfigProvider', () => {
9797
const config = {
9898
queries: {
9999
refetchOnWindowFocus: false,
100-
refetchOnMount: false,
101100
retry: false,
102101
},
103102
}
@@ -143,7 +142,7 @@ describe('ReactQueryConfigProvider', () => {
143142
await waitFor(() => rendered.findByText('Data: data'))
144143

145144
// tear down and unmount
146-
// so we are NOT passing the config above (refetchOnMount should be `true` by default)
145+
// so we are NOT passing the config above
147146
fireEvent.click(rendered.getByText('unmount'))
148147

149148
act(() => {
@@ -161,15 +160,12 @@ describe('ReactQueryConfigProvider', () => {
161160

162161
const parentConfig = {
163162
queries: {
164-
refetchOnMount: false,
165163
onSuccess: parentOnSuccess,
166164
},
167165
}
168166

169167
const childConfig = {
170168
queries: {
171-
refetchOnMount: true,
172-
173169
// Override onSuccess of parent, making it a no-op
174170
onSuccess: undefined,
175171
},

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)