¿Cómo usar React.js para representar la plantilla del lado del servidor en Sails.js?
Estoy tratando de construir una aplicación isomorphing con Sails.js y React. La parte del lado del cliente es fácil. Pero me encuentro con problemas con la representación del lado del servidor.
Cuando trato de renderizar en el servidor un archivo * .jsx con React, obtengo esto:
renderToString(): You must pass a valid ReactElement
Estoy usando sailsjs, react y sails-hook-babel (para la sintaxis ES6).
./assets/components/Auth.jsx:
import React from 'react';
export class Auth extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div className='auth'>
Very simple element without any logic just for test server-rendering.
</div>
);
}
}
./api/controllers/AuthController.js:
var Auth = require('./../../assets/components/Auth.jsx');
import React from 'react';
module.exports = {
render: function (req, res) {
//var markup = React.renderToString(
// Auth
//); // This throws an error
console.log(Auth); // {__esModule: true, Auth: [Function: Auth]}
//res.view("layout", {app: markup});
}
};
He intentado la sintaxis ES5 / ES6 en todas partes. El error ocurre cada vez. En los clientes, este Auth.jsx funciona bien (estoy usando webpack con babel-loader).