Como usar o React.js para renderizar o modelo do lado do servidor no Sails.js?
Estou tentando criar um aplicativo isomorphing com Sails.js e React. A parte do cliente é fácil. Mas eu tenho problemas com a renderização no servidor.
Quando tento processar um arquivo * .jsx com React, obtive o seguinte:
renderToString(): You must pass a valid ReactElement
Estou usando sailsjs, react e sails-hook-babel (para sintaxe 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});
}
};
Eu tentei a sintaxe do ES5 / ES6 em todos os lugares. O erro ocorre sempre. No lado do cliente, este Auth.jsx funciona bem (estou usando o webpack com o babel-loader).