反应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>