You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
open the page - this should load and put data into the cache
reload the page - data from localStorage is picked up
However - the query still goes into a hard loading state (check the console)
Additionally, initialData function is executed if you provide one
On our react 18 branch, if you provide InfinitystaleTime, the query will also hang in loading state indefinitely. That is likely due to due to different batching / concurrent behaviour of react 18 and react-query hydrating the cache asynchronously while already fetching...
Expected behavior
when data is hydrated from an external storage, queries should:
not go into hard loading state
should not call initialData function
should only refetch if the data is considered stale
How often does this bug happen?
No response
Screenshots or Videos
No response
Platform
macos, chrome
react-query version
3.34.12, 4.0.0.-alpha9 and the react-18 branch
TypeScript version
No response
Additional context
The problem seems to be that persistQueryClient is asynchronous even for the webStoragePersister. That is necessary to provide a consistent api. However, it means that we kick off the read from the webstorage, and then the app may start to render. If the rendered page then has queries, they will go into loading state. The persister then calls hydrate, which will put data into the cache.
The behaviour of "who comes first" seems to be completely undefined. It could even be that the fetch finishes before the read from the persister.
The text was updated successfully, but these errors were encountered:
Describe the bug
when a page mounts that has queries, those queries go into a hard loading state even if we have data already restored from the
persistQueryClient
Your minimal, reproducible example
https://codesandbox.io/s/tannerlinsley-react-query-forked-4fz2f
Steps to reproduce
However - the query still goes into a hard loading state (check the console)
Additionally,
initialData
function is executed if you provide oneOn our react 18 branch, if you provide
Infinity
staleTime
, the query will also hang inloading
state indefinitely. That is likely due to due to different batching / concurrent behaviour of react 18 and react-query hydrating the cache asynchronously while already fetching...Expected behavior
when data is hydrated from an external storage, queries should:
initialData
functionHow often does this bug happen?
No response
Screenshots or Videos
No response
Platform
macos, chrome
react-query version
3.34.12, 4.0.0.-alpha9 and the react-18 branch
TypeScript version
No response
Additional context
The problem seems to be that persistQueryClient is asynchronous even for the webStoragePersister. That is necessary to provide a consistent api. However, it means that we kick off the read from the webstorage, and then the app may start to render. If the rendered page then has queries, they will go into loading state. The persister then calls
hydrate
, which will put data into the cache.The behaviour of "who comes first" seems to be completely undefined. It could even be that the fetch finishes before the read from the persister.
The text was updated successfully, but these errors were encountered: