我有一个反应应用程序。它有两个页面 - AddStatus和ViewStatus。两者都是反应成分。
我的要求是 - 我必须在特定时间每天发送一封电子邮件,其中包含ViewStatus屏幕中显示的详细信息。
我可以设置node-mailer和node-scheduler来做到这一点。但是我如何从后端渲染ViewStatus组件。我如何获得viewStatus屏幕的HTML。
我尝试在我的server.js中使用ReactDOMServer的renderToString方法,但是收到错误
var App = React.createFactory(require('../ViewStatus'))
var p = ReactDOMServer.renderToString(App());
Error: locals[0] does not appear to be a `module` object with Hot Module replace
ment API enabled. You should disable react-transform-hmr in production by using
`env` section in Babel configuration. See the example in README: https://github.
com/gaearon/react-transform-hmr
我使用的另一种方法是使用react-router,但我不确定如何从后端触发路由。
如何在server.js中获取viewstatus组件的HTML
答案 0 :(得分:0)
var React = require("react");
var ReactDOMServer = require("react-dom/server");
var MyComponent = React.createClass({
render: function() {
return React.DOM.div({}, "Text");
}
});
var App = React.createFactory(MyComponent)
var html = ReactDOMServer.renderToString(App());
console.log("HTML =\n", html);
输出:
HTML =
<div data-reactroot="" data-reactid="1" data-react-checksum="-1164111617">Text</div>
对我来说,正如你的错误所说的那样,看起来你对React Hot Loader有问题..你的代码看起来很好。