我正在使用节点js渲染一个反应类,因为......
var express = require('express');
var router = express.Router();
var React = require('react');
var reactDom = require('react-dom/server');
var App = React.createFactory(require('../components/index'));
router.get('/', function(req,res) {
var reactHtml = reactDom.renderToString(App({}));
res.render('../../tutorHub/views/index.jade', {reactOutput: reactHtml});
});
module.exports = router;
页面渲染得很好,但是没有调用我添加的函数。例如,在我的App
班级中......
class App extends React.Component {
constructor(props) {
super(props);
}
getClass() {
return "a_class";
}
render() {
return (
<div className={this.getClass}></div>
);
}
}
module.exports = App;
未调用getClass
函数。相反,className成为代码
class = getClass() {
return "a_class";
}
当我检查html时,而不仅仅是a_class
。出于某种原因,它不是被调用的函数,而是简单地保存为字符串并放入className。
为什么会这样?我无法调用我所做的任何功能。有人可以帮助我吗?
答案 0 :(得分:4)
该功能未被调用,因为您没有调用它。您可以看到函数的源代码,因为任何与函数串联的函数都会执行相同的操作((""+(foo=>bar)) === "foo=>bar"
)。您所要做的就是:
<div className={this.getClass()}></div>