Next.js · Senior · Pytanie 40 z 75
Komponent pokazuje new Date().toLocaleString() i powoduje hydration mismatch. Jakie rozwiązanie jest najpoprawniejsze?
- ✓Poprawna odpowiedź: Pokazać czas po zamontowaniu lub ustalić go na serwerze
- 2Wyłączyć hydratację dla całej strony opcją
next.config - 3Opakować komponent w
React.memo, by się nie przerenderowywał
Wyjaśnienie
Serwer i klient są w różnych strefach czasowych i momentach, więc string się różni. Opcje: komponent kliencki pokazujący czas po zamontowaniu; formatowanie na serwerze ze stałą strefą; suppressHydrationWarning na elemencie ze znacznikiem czasu. Niezgodności często powodują też rozszerzenia przeglądarki.