@apollo/client
Advanced tools
Changelog
3.10.5
#11888 7fb7939
Thanks @phryneas! - switch useRenderGuard
to an approach not accessing React's internals
#11511 6536369
Thanks @phryneas! - useLoadableQuery
: ensure that loadQuery
is updated if the ApolloClient instance changes
#11860 8740f19
Thanks @alessbell! - Fixes #11849 by reevaluating window.fetch
each time BatchHttpLink
uses it, if not configured via options.fetch
. Takes the same approach as PR #8603 which fixed the same issue in HttpLink
.
#11852 d502a69
Thanks @phryneas! - Fix a bug where calling the useMutation
reset
function would point the hook to an outdated client
reference.
#11329 3d164ea
Thanks @PaLy! - Fix graphQLErrors in Error Link if networkError.result is an empty string
#11852 d502a69
Thanks @phryneas! - Prevent writing to a ref in render in useMutation
.
As a result, you might encounter problems in the future if you call the mutation's execute
function during render. Please note that this was never supported behavior, and we strongly recommend against it.
#11848 ad63924
Thanks @phryneas! - Ensure covariant behavior: MockedResponse<X,Y>
should be assignable to MockedResponse
#11851 45c47be
Thanks @phryneas! - Avoid usage of useRef in useInternalState to prevent ref access in render.
#11877 634d91a
Thanks @phryneas! - Add missing name to tuple member (fix TS5084)
#11851 45c47be
Thanks @phryneas! - Fix a bug where useLazyQuery
would not pick up a client change.
Changelog
3.10.4
#11838 8475346
Thanks @alex-kinokon! - Don’t prompt for DevTools installation for browser extension page
#11839 6481fe1
Thanks @jerelmiller! - Fix a regression in 3.9.5 where a merge function that returned an incomplete result would not allow the client to refetch in order to fulfill the query.
#11844 86984f2
Thanks @jerelmiller! - Honor the @nonreactive
directive when using cache.watchFragment
or the useFragment
hook to avoid rerendering when using these directives.
#11824 47ad806
Thanks @phryneas! - Create branded QueryRef
type without exposed properties.
This change deprecates QueryReference
in favor of a QueryRef
type that doesn't expose any properties.
This change also updates preloadQuery
to return a new PreloadedQueryRef
type, which exposes the toPromise
function as it does today. This means that query refs produced by useBackgroundQuery
and useLoadableQuery
now return QueryRef
types that do not have access to a toPromise
function, which was never meant to be used in combination with these hooks.
While we tend to avoid any types of breaking changes in patch releases as this, this change was necessary to support an upcoming version of the React Server Component integration, which needed to omit the toPromise
function that would otherwise have broken at runtime.
Note that this is a TypeScript-only change. At runtime, toPromise
is still present on all queryRefs currently created by this package - but we strongly want to discourage you from accessing it in all cases except for the PreloadedQueryRef
use case.
Migration is as simple as replacing all references to QueryReference
with QueryRef
, so it should be possible to do this with a search & replace in most code bases:
-import { QueryReference } from '@apollo/client'
+import { QueryRef } from '@apollo/client'
- function Component({ queryRef }: { queryRef: QueryReference<TData> }) {
+ function Component({ queryRef }: { queryRef: QueryRef<TData> }) {
// ...
}
#11845 4c5c820
Thanks @jerelmiller! - Remove @nonreactive
directives from queries passed to MockLink
to ensure they are properly matched.
#11837 dff15b1
Thanks @jerelmiller! - Fix an issue where a polled query created in React strict mode may not stop polling after the component unmounts while using the cache-and-network
fetch policy.
Changelog
3.10.2
#11821 2675d3c
Thanks @jerelmiller! - Fix a regression where rerendering a component with useBackgroundQuery
would recreate the queryRef
instance when used with React's strict mode.
#11821 2675d3c
Thanks @jerelmiller! - Revert the change introduced in
3.9.10 via #11738 that disposed of queryRefs synchronously. This change caused too many issues with strict mode.