All:Come esportare componenti per il rendering in lato server Reagire
io sono abbastanza nuovo a reagire, in questo momento sto cercando come fare il rendering lato server, io uso Express.js come mio server, in modo che il codice di è come:
//server.js
var express = require("express");
var ReactDOMServer = require("react-dom/server");
var MyCom = require("./components");
var domstring = ReactDOMServer.renderToString(MyCom);
var app = express();
app.get("/", function(req, res){
res.json({
name: "new com",
dom: domstring
});
});
E
// components.js
var React = require("react");
var MyCom = React.createClass({
render: function(){
return (<h1>Hello, server side react</h1>);
}
});
module.exports = MyCom;
io uso babel a transpile il JSX, ma quando inizio assistente, non so il motivo per cui continuo a ricevere errore come:
Violazione invariante: renderToString(): è necessario passare un Elemento di Reazione valido .
Qualcuno potrebbe dare qualche indizio sul motivo per cui questo non funziona?
Grazie
grazie per la risposta. Quando torno all'API FB, mi rendo conto che deve essere anche un elemento di stile JSX. – Kuan
Puoi anche fare qualcosa del tipo: 'reactDOM.renderToString (react.createFactory (componentFile)(), {});' E dovrebbe funzionare quando il tuo componente risiede in un file jsx separato – danielrvt