diff --git a/.changeset/settled-ssr-state.md b/.changeset/settled-ssr-state.md new file mode 100644 index 00000000000..1813c364094 --- /dev/null +++ b/.changeset/settled-ssr-state.md @@ -0,0 +1,5 @@ +--- +'@tanstack/solid-query': patch +--- + +Expose settled query state when rendering deferred queries during SSR. diff --git a/packages/solid-query/src/useBaseQuery.ts b/packages/solid-query/src/useBaseQuery.ts index 773d0719e0c..665340fd84f 100644 --- a/packages/solid-query/src/useBaseQuery.ts +++ b/packages/solid-query/src/useBaseQuery.ts @@ -375,6 +375,16 @@ export function useBaseQuery< target: QueryObserverResult, prop: keyof QueryObserverResult, ): any { + // The server subscriber resolves the resource without updating `state`. + // Read the settled resource so deferred SSR renders do not stay frozen + // on the initial optimistic result. + if (isServer) { + const resolved = queryResource() + if (resolved && prop in resolved) { + return Reflect.get(resolved, prop) + } + } + if (prop === 'data') { if (state.data !== undefined) { return queryResource.latest?.data