反应function没有被调用

我正在使用节点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"; } 

而不是简单的a_class当我检查的HTML。 出于某种原因,而不是被调用的函数,它被简单地保存为一个string并放入到className中。

为什么发生这种情况? 我无法调用我所做的任何function。 有人可以帮我吗?

这个函数没有被调用,因为你没有调用它。 你可以看到这个函数的源代码,因为任何函数都会被转换成一个string( (""+(foo=>bar)) === "foo=>bar" )。 你所要做的就是:

 <div className={this.getClass()}></div>