diff --git a/packages/solid-query/src/useIsMutating.ts b/packages/solid-query/src/useIsMutating.ts index 57ec870e45..1cc88f9b15 100644 --- a/packages/solid-query/src/useIsMutating.ts +++ b/packages/solid-query/src/useIsMutating.ts @@ -1,4 +1,4 @@ -import { createMemo, createSignal, onCleanup } from 'solid-js' +import { createEffect, createMemo, createSignal, onCleanup } from 'solid-js' import { useQueryClient } from './QueryClientProvider' import type { MutationFilters } from '@tanstack/query-core' import type { QueryClient } from './QueryClient' @@ -15,11 +15,13 @@ export function useIsMutating( client().isMutating(filters?.()), ) - const unsubscribe = mutationCache().subscribe((_result) => { - setMutations(client().isMutating(filters?.())) - }) + createEffect(() => { + const unsubscribe = mutationCache().subscribe((_result) => { + setMutations(client().isMutating(filters?.())) + }) - onCleanup(unsubscribe) + onCleanup(unsubscribe) + }) return mutations } diff --git a/packages/solid-query/src/useMutationState.ts b/packages/solid-query/src/useMutationState.ts index 2a405a1ae4..bc4c6946f5 100644 --- a/packages/solid-query/src/useMutationState.ts +++ b/packages/solid-query/src/useMutationState.ts @@ -1,4 +1,4 @@ -import { createEffect, createMemo, createSignal, onCleanup } from 'solid-js' +import { untrack, createEffect, createMemo, createSignal, onCleanup } from 'solid-js' import { replaceEqualDeep } from '@tanstack/query-core' import { useQueryClient } from './QueryClientProvider' import type { @@ -40,11 +40,12 @@ export function useMutationState( createEffect(() => { const unsubscribe = mutationCache().subscribe(() => { + const _result = untrack(result) const nextResult = replaceEqualDeep( - result(), + _result, getResult(mutationCache(), options()), ) - if (result() !== nextResult) { + if (_result !== nextResult) { setResult(nextResult) } })