web-dev-qa-db-fra.com

React 16 warning "warning.js: 36 Warning: Ne s'attendait pas à ce que le serveur HTML contienne un <div> dans <div>."

J'utilise la React 16 beta (react-fibre) avec rendu côté serveur

Qu'est-ce que je dois comprendre?

warning.js:36 Warning: Did not expect server HTML to contain a <div> in <div>.
15
David Furlong

À la recherche de cette erreur dans le code de réaction, il semble que cela se produit lorsque le HTML SSR ne peut pas être réhydraté.

https://github.com/facebook/react/blob/7a60a8092144e8ab2c85c6906dd4a7a5815cff1f/src/renderers/dom/fiber/ReactDOMFiberComponent.js#L1022

Vous êtes donc en quelque sorte en train de rendre initialement une arborescence différente sur le client par rapport au serveur.

16
w00t

Il suffit de changer la réponse express de

<body>
    <div id="root">
        ${markup}
    </div>
</body>

à

<body>
    <div id="root">${markup}</div>
</body>

Supprimer l'espace entre les balises

17
Sagar Gavhane