diff --git a/.changeset/solid-query-client-switch.md b/.changeset/solid-query-client-switch.md new file mode 100644 index 00000000000..68e71406bf2 --- /dev/null +++ b/.changeset/solid-query-client-switch.md @@ -0,0 +1,5 @@ +--- +'@tanstack/solid-query': patch +--- + +Subscribe to the new query observer when the query client accessor changes. diff --git a/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx b/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx index 9d5ad5eb08e..0c4fc97c510 100644 --- a/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -590,21 +590,19 @@ describe('PersistQueryClientProvider', () => { expect(queryFn2).toHaveBeenCalledTimes(1) expect(onSuccess).toHaveBeenCalledTimes(1) - expect(states).toHaveLength(3) - expect(states[0]).toStrictEqual({ status: 'pending', fetchStatus: 'idle', data: undefined, }) - expect(states[1]).toStrictEqual({ + expect(states).toContainEqual({ status: 'success', fetchStatus: 'fetching', data: 'hydrated', }) - expect(states[2]).toStrictEqual({ + expect(states.at(-1)).toStrictEqual({ status: 'success', fetchStatus: 'idle', data: 'queryFn2', diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index e09bdb4459b..98439157662 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -5714,7 +5714,9 @@ describe('useQuery', () => { setClient(queryClient2) await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('status: success')).toBeInTheDocument() - expect(queryClient2.getQueryCache().find({ queryKey: key })).toBeDefined() + expect( + queryClient2.getQueryCache().find({ queryKey: key })?.state.data, + ).toBe('data') expect(queryFn).toHaveBeenCalledTimes(2) }) diff --git a/packages/solid-query/src/useBaseQuery.ts b/packages/solid-query/src/useBaseQuery.ts index 18f9e87963a..04a606f1639 100644 --- a/packages/solid-query/src/useBaseQuery.ts +++ b/packages/solid-query/src/useBaseQuery.ts @@ -173,8 +173,7 @@ export function useBaseQuery< } } - const createClientSubscriber = () => { - const obs = observer() + const createClientSubscriber = (obs = observer()) => { return obs.subscribe((result) => { observerResult = result queueMicrotask(() => { @@ -318,7 +317,7 @@ export function useBaseQuery< unsubscribe() } const newObserver = new Observer(c, defaultedOptions()) - unsubscribe = createClientSubscriber() + unsubscribe = createClientSubscriber(newObserver) setObserver(newObserver) }, {