Ich bin neu zu Reagieren Server Seite Rendering, arbeitet an einer kleinen Demo mit React , Redux , React router , Material UI
. Das Problem, vor dem ich stehe, ist die folgende Warnung. Unsicher, wie das isomorphe Styling und die Assets mit Webpack funktionieren.Reagieren Server Side Rendering mit Express - Warnung auf dem Client Prüfsumme & Styling
Ich habe die Pipeline wie serverseitigen Rendering funktionieren, bitte korrigieren Sie mich, wenn es falsch ist.
- Mit renderToString wird die React-Komponente in den HTML-Code aufgelöst.
- Sobald der HTML-Code auf der Clientseite gerendert wird, werden alle Ereignisse, Styling angefügt, was bedeutet, dass react versucht, die Komponente erneut auf der Clientseite zu rendern, wenn die Komponente bereits erstellt wurde, wird sie erneut erstellt.
- Wenn die Komponente bereits erstellt wurde oder NICHT basierend auf der Prüfsumme abgeleitet wird.
Ausgabe berichtet in GIT https://github.com/callemall/material-ui/issues/4466
-Code https://github.com/sabha/React-Redux-Router-MaterialUI-ServerSideRendering
‚warning.js: 44Warning: versuchte React Markup in einem Behälter wieder zu verwenden, aber die Prüfsumme ungültig. Dies bedeutet im Allgemeinen, dass Sie Server-Rendering verwenden und das auf dem Server generierte Markup nicht das war, was der Client erwartet hat. Reacted injected new markup, um zu kompensieren, das funktioniert, aber Sie haben viele der Vorteile von Server Rendering verloren. Finden Sie stattdessen heraus, warum das zu generierende Markup auf dem Client oder Server unterschiedlich ist: (client) 0; text-align: center; mui-prepared:; - webki (Server) 0; text-align: center; - webkit-user-select:‘
Sie möchten vielleicht einen Blick auf diesen Artikel - https://www.garysieling.com/blog/fixing-react-attempted-reuse-markup-container-checksum-invalid –
Es gibt kleine Workaround https: // github.com/Hashnode/mern-starter/issues/149 –