-
-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rc.5
breaks hydrating useFetch
data
#14318
Comments
rc.5
breaks server-side rendered data with TypeError: data.value is null
rc.5
breaks hydrating useFetch
data
I also ran into this problem. After upgrading to |
I made two Stackblitz projects to reproduce. They both use the example I mentioned:
The only difference is the Nuxt version. |
@KoenCa Thanks! I've edited the initial post to link to your examples. |
I have got a similar problem after upgrading from RC. 4 to RC. 5 Following are the reproduction projects for RC. 4 and RC. 5 similar to my current setup. |
Thanks for making reproduction and detailed issues. With RC.5, for the default key instead of generating a hash from dynamic url passed to the A hash collision is initial provided reproduction was happening ( npx nuxi@latest upgrade --force @WamiqM With your reproduction, there is another edge case BTW that is different from hash collision. Since now key is based on static code location of (Docs need to be improved) Example: import { hash } from 'ohash'
export const apiFetch = (url: string, fetchOptions: any = {}) => {
return useFetch(url, {
baseURL: 'https://api.github.com/',
key: hash(['api-fetch', url, fetchOptions]), // <---
...fetchOptions,
headers: {
...fetchOptions.headers,
},
});
}; Note: You can use any custom key instead of hashing input or manually pass as 3rd argument. Hash is just probably safest Note: For nested fetch composables, I would recommend to switch to |
@pi0 providing/computing the key solves my issue. Thank you for explaining and for your recommendation. 👍 |
@pi0 Thanks for the thorough investigation. Unfortunately, my It seems to break on Netlify; local preview is working: Repo (RC 5, where it is breaking): https://github.com/johannschopplich/kirby-nuxt-starterkit/tree/feat/nuxt-3-rc.5 Repo (RC 4): https://github.com/johannschopplich/kirby-nuxt-starterkit Would you mind opening the first Netlify build to see the error in the console? Seems like a second |
@pi0 Thanks for the explanation. I upgraded to |
All right, seems like something is broken in my setup. Closing this for now. Thanks for all the insightful messages! |
Issues should be fixed in the latest RC.6 release. |
Hi, I'm using the release candidate 6, and I've got the same issue. |
@mlbonniec Would you please open new issue with reproduction? 🙏 |
I can't reproduce the bug except on my project 😕 |
Any code snippet of usage could also help in new issue. Can you please also try edge? (https://v3.nuxtjs.org/guide/going-further/edge-channel). We just pushed an improvement regarding key generation. |
I tried @pi0, and it didn't fix the problem. So I just opened a Github issue ^^ |
Environment
Darwin
v16.15.0
3.0.0-rc.5
[email protected]
vite
modules
,runtimeConfig
,kql
,typescript
@vueuse/[email protected]
,[email protected]
-
Reproduction
useFetch
composable: https://stackblitz.com/edit/nuxt-starter-a3klpk?file=app.vueReproduction with
nuxt-kql
moduleRepo (RC 5): https://github.com/johannschopplich/kirby-nuxt-starterkit/tree/feat/nuxt-3-rc.5
👉 Live demo of this repo: https://superlative-gelato-9c9293.netlify.app (Inspect the bug in the console)
Repo (RC 4): https://github.com/johannschopplich/kirby-nuxt-starterkit
👉 Live demo of this repo: https://kirby-nuxt-starterkit.netlify.app
Describe the bug
Server-side fetched data can't be hydrated in the client. A custom
key
is passed touseFetch
(the same on client & server), but on the client the data for the same key seems not be able to be fetchable.With disabled build minification, the console (client) throws:
In
rc.4
, everything worked correctly.Additional context
No response
Logs
👀 View the console error
TypeError: data.value is null NuxtJS 63 setup callWithErrorHandling setupStatefulComponent setupComponent mountComponent hydrateNode hydrateSuspense hydrateNode hydrateSubTree componentUpdateFn run update setupRenderEffect mountComponent hydrateNode hydrateSubTree componentUpdateFn run update setupRenderEffect mountComponent hydrateNode hydrateSubTree componentUpdateFn run update setupRenderEffect mountComponent hydrateNode hydrateSubTree componentUpdateFn run update setupRenderEffect mountComponent hydrateNode hydrateChildren hydrateElement hydrateNode hydrateChildren hydrateFragment hydrateNode hydrateSubTree componentUpdateFn run update setupRenderEffect mountComponent hydrateNode hydrateSuspense hydrateNode hydrateSubTree componentUpdateFn run update setupRenderEffect mountComponent hydrateNode hydrate mount mount initApp async* entry-d9af1809.mjs:1091:13
The text was updated successfully, but these errors were encountered: