0

我有一个反应的应用程序。它有两个页面 - AddStatus和ViewStatus。两者都是反应组分。发送html呈现的反应作为电子邮件正文节点js

我的要求是 - 我必须在特定的时间每天发送一封电子邮件,内容详见ViewStatus屏幕。

我可以设置节点邮件程序和节点调度程序来做到这一点。但是,我如何从后端呈现ViewStatus组件。我如何获取viewStatus屏幕的HTML。

我尝试使用ReactDOMServer的renderToString方法如下面我server.js但得到错误

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 

另一种方法我虽然是使用反应路由器,但我不知道如何从后端触发路线。

如何让我的viewstatus组件的HTML我server.js

回答

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 ..你的代码似乎很好。

+0

是的,这个简单的代码也适用于我。如果我只是在我的server.js中执行此操作。但是,当我在server.js导入我的组件时,我得到错误 – SCoder

+0

我能够得到它后,我删除react-hmre工作,但当我加载我的组件开始失败的依赖。首先Jquery然后我包括jquery在我的server.js(这是不正确的方式),但然后它开始失败的文件没有定义。什么是正确的方式来使用renderToString? – SCoder