Trabajé mucho con el renderizado del lado del servidor con RR 3, así que quería ver cómo funciona en el contexto de v4. Seguí el tutorial del sitio web, pero debido a que la representación se realiza ahora junto con la coincidencia de ruta, no hay forma de implementar la obtención previa de datos como antes.
Así es como solía hacer la representación del servidor con v3: https://github.com/alexnm/react-seed/blob/master/server/index.js
Según la función de coincidencia, llamaría a todas las funciones de captación previa de todo el árbol de componentes y luego esperaría con Promise.all para que finalicen, luego activaría la función renderToString y devolvería el html.
En RR4, solo tenemos el componente <ServerRouter> , por lo que la solución actual con la que vine es duplicar el código de procesamiento: https://github.com/FortechRomania/react-redux-complete-example/blob/master/src/server /index.js
También estoy usando la función de render en la etiqueta <Match> para activar las acciones de captación previa. Es feo e introduce todo tipo de dependencias en el componente principal de la página que quiero representar con datos precargados.
¿Que me estoy perdiendo aqui? ¿Alguien ha encontrado una mejor solución para este escenario? Todavía no he encontrado nada útil.
La nueva documentación de RR4 tiene un ejemplo funcional: https://reacttraining.com/react-router/web/guides/server-rendering/data-loading