@@ -2052,13 +2052,25 @@ export function buildHooks<Definitions extends EndpointDefinitions>({
2052
2052
2053
2053
usePromiseRefUnsubscribeOnUnmount ( promiseRef )
2054
2054
2055
+ const stableArg = useStableQueryArgs (
2056
+ options . skip ? skipToken : arg ,
2057
+ // Even if the user provided a per-endpoint `serializeQueryArgs` with
2058
+ // a consistent return value, _here_ we want to use the default behavior
2059
+ // so we can tell if _anything_ actually changed. Otherwise, we can end up
2060
+ // with a case where the query args did change but the serialization doesn't,
2061
+ // and then we never try to initiate a refetch.
2062
+ defaultSerializeQueryArgs ,
2063
+ context . endpointDefinitions [ endpointName ] ,
2064
+ endpointName ,
2065
+ )
2066
+
2055
2067
return useMemo ( ( ) => {
2056
2068
const fetchNextPage = ( ) => {
2057
- return trigger ( arg , 'forward' )
2069
+ return trigger ( stableArg , 'forward' )
2058
2070
}
2059
2071
2060
2072
const fetchPreviousPage = ( ) => {
2061
- return trigger ( arg , 'backward' )
2073
+ return trigger ( stableArg , 'backward' )
2062
2074
}
2063
2075
2064
2076
return {
@@ -2070,7 +2082,7 @@ export function buildHooks<Definitions extends EndpointDefinitions>({
2070
2082
fetchNextPage,
2071
2083
fetchPreviousPage,
2072
2084
}
2073
- } , [ promiseRef , trigger , arg ] )
2085
+ } , [ promiseRef , trigger , stableArg ] )
2074
2086
}
2075
2087
2076
2088
const useInfiniteQueryState : UseInfiniteQueryState < any > =
0 commit comments