dev-tourBUG-002RESOLVED
Erreur
Créé 23/05/2026 23:52:31 · MAJ 23/05/2026 23:58:27 · 2 images
Regardes les captures


Diagnostic
Deux erreurs distinctes dans la console iOS :
- Console Error : "Encountered a script tag while rendering React component" → causé par
<script dangerouslySetInnerHTML={{ __html: themeInitScript }} />dansapp/layout.tsx. React 19 / Next 16 ne tolèrent plus les<script>inline rendus dans l'arbre Server Component. - Recoverable Error — Hydration failed : diff visible
<span className="ml-2 norma...">. Cause :stats.totalNodes.toLocaleString()(sans locale explicite) danscomponents/home/home-debug.tsx. La locale par défaut diffère entre Node (en-US →4,925) et navigateur (fr →4 925).
Les 2 erreurs ensemble cassaient l'hydratation → useEffect ne se déclenchait jamais → hydrated restait false → home figée sur "Chargement…" jusqu'au refresh (où le bug d'inline script peut se résoudre tout seul par cache).
Fix
- Script inline déplacé dans
public/theme-init.js, référencé via<script src="/theme-init.js" />. Sort de l'arbre React → plus de warning. toLocaleString()remplacé par un formatter déterministeString(n).replace(/\B(?=(\d{3})+(?!\d))/g, " ")qui produit exactement le même output côté serveur et navigateur, indépendamment de la locale.
Vérifications
npx tsc --noEmit: 0 erreur- SSR HTML : plus aucun
dangerouslySetInnerHTMLnilocalStorage.getItem /theme-init.jsservi enapplication/javascript(557 bytes)- SSR rend
931 fichiers · 4 925 liensavec espace normal — identique au client
À tester côté user
Hard refresh (Ctrl+Shift+R / Cmd+Shift+R). Console devrait être propre. La page Home doit s'afficher direct, sans "Chargement…" même en navigation privée.
Chemin disque : /home/debian/superApp_V1/bugs/dev-tour/BUG-002-erreur/