Comments (3)
To my knowledge, Tanstack Query has yet to support Svelte 5 runes, so directly feeding $state
(assuming dependencyVariable is $state
) won't yield the desired results.
The Tanstack Query 5 documentation mentions you can pass options as a Svelte Store
to make it reactive.
While not very ergonomic, it is workable.
Alternatives like Svelte 4 reactive statements or re-creating the query in a $effect
won't work because svelte's context
becomes unavailable after the component initialization is complete. (this accidentally did work in early versions of svelte 5)
To make it a bit more ergnomic you can simplify the creation of a reactive store from your runes with a function like:
const toReadable = (cb) => readable(cb(), set => $effect.pre(() => set(cb())));
and then do something like:
let dependency = $state("something");
const query = createQuery(toReadable(() => ({
queryKey: ["Resource", dependency],
queryFn: () => getSomething(dependency)
})));
However, note that the above example is for createQuery
.
For createInfiniteQuery
, it appears to be a bit trickier. You might expect something like this to work:
let dependencyVariable = writable("whatever");
let query = createInfiniteQuery(
derived(dependencyVariable, ($dependencyVariable) => ({
queryKey: ["Resource", $dependencyVariable],
queryFn: async ({ pageParam }) => {
// Implementation omitted for brevity
},
getNextPageParam(lastPage) {
// Implementation omitted for brevity
},
initialPageParam: null as string | null | undefined,
initialDataUpdatedAt: () => Date.now(),
}))
);
However, this gives me a lot of type errors, suggesting it is not the way to do it.
An additional example in the documentation specifically demonstrating how to use createInfiniteQuery
reactively would be very helpful.
from query.
I have the same issue, I would expect infinite query to refetch page 0 with different parameters (or do anything at all) when part of the array key changes, as a temporary workaround I am using:
enabled: false
and manually triggering refetch in a reactive statement
$postQuery.refetch({ refetchPage: 0 });
from query.
I have added an example code below
Please show a minimal reproduction with codesandbox or stackblitz
from query.
Related Issues (20)
- Errors for shared queryKeys cause all queryFn to run, even if disabled HOT 1
- Handling Persistent Storage Overflow with TanStack Query and persister HOT 2
- Docs: Broken links in react suspense guide HOT 1
- Dependent useQueries creates too many updates (exceeds maximum update depth) HOT 2
- Order matters to useInfiniteQuery options and TS HOT 4
- [vue-query] `useQueries` type inference issues with `select`, `computed` and `Array.map` HOT 1
- enabled: false should not ever fire a query or populate the local store HOT 1
- Solid Query: <Suspense> gets stuck in a loading state HOT 9
- Docs: Broken link on "Installation" page HOT 1
- eslint-plugin-query is incompatible with Eslint 9.x HOT 3
- Solid Query is mixing up queries during SSR HOT 2
- Docs : Remove ‘$’ from Installation Commands in Documentation
- SSR using NextJS App Router with InitialData Does not Callback HOT 4
- Changing `retryDelay` is ignored for query HOT 2
- Solid Query is failing to recognize signal change in `onMount` HOT 7
- Wrong inferring in useInfiniteQuery HOT 3
- Solid: Cannot access 'refetch' before initialization
- docs: search doesn't work HOT 1
- Docs website doesn't work in Brave HOT 2
- Docs website is down HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from query.