– Hvis du bruker Next.js og du ser at ting ikke oppdaterer seg, da garanterer jeg deg – det er antagelig klientside-ruteren som cacher ting den ikke burde ha cachet.
Det sier den tydelig frustrerte YouTube-profilen Web Dev Cody i en fersk video.
Mener det må være en bug
I videoen under sliter Web Dev Cody med noe han mener er relatert til hvordan caching i Next.js fungerer.
Kort fortalt handler det om å lese og skrive data til et API, og hva som skjer når brukeren navigerer til en annen rute, det vil si side i appen din – og så tilbake igjen.
I eksempelet til Web Dev Cody er det litt forsinkelser her og der, som gjør at du ikke vet om for eksempel en database ute i verden et sted er oppdatert eller ikke. Derfor har han noe logikk i appen sin som skal gi en umiddelbar oppdatering av tilstanden i brukergrensesnittet, og så bytte ut gamle data når det kommer nye etter hvert.
– Jeg spøker ikke; jeg bytter til Remix etter denne bugen.
Det hele er litt innfløkt, men Web Dev Cody gir en god forklaring på problemet i denne YouTube-videoen:
- JavaScript stinker, det er så mye drit
Problem løst – men neppe intuitivt
Det tok ikke lang tid fra Web Dev Cody hadde lagt ut videoen, til en bruker kom han til unnsetning.
Det viste seg at feilen var relatert til hvordan Web Dev Cody hadde brukt det eksperimentelle useOptimistic-API-et i Next.js. Dette skal gi en bedre brukeropplevelse ved å få appen til å virke mer responsiv for brukeren.
pinned as comment in my video, but see my attached snippet (ignore the ts errors). For some reason, useOptimistic doesn't work when the filter is inside the reducer. So if you click the delete button multiple times, it everything gets all messed up. pic.twitter.com/VWepmQlnWc
— WebDevCody (@webdevcody) August 8, 2023
– Men jeg føler at jeg fortsatt ikke helt forstår hva som foregår. Jeg er ikke sikker på om dette faktisk fikser problemet, eller bare er en "bandasje" som maskerer det, sier Web Dev Cody.