反应功能未被调用

时间:2016-08-24 00:31:21

标签: javascript node.js reactjs

我正在使用节点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。

为什么会这样?我无法调用我所做的任何功能。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

该功能未被调用,因为您没有调用它。您可以看到函数的源代码,因为任何与函数串联的函数都会执行相同的操作((""+(foo=>bar)) === "foo=>bar")。您所要做的就是:

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