反应函数没有被调用

Bol*_*boa 1 javascript node.js reactjs

我正在使用 Node js 渲染一个 React 类......

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;
Run Code Online (Sandbox Code Playgroud)

页面渲染得很好,但我添加的函数没有被调用。例如,在我的App班级...

class App extends React.Component {
    constructor(props) {
        super(props);    
    }
    getClass() {
        return "a_class";
    }

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

module.exports = App;
Run Code Online (Sandbox Code Playgroud)

getClass函数未被调用。相反,类名变成了代码

class = getClass() {
    return "a_class";
}
Run Code Online (Sandbox Code Playgroud)

而不是简单地a_class当我检查 html 时。由于某种原因,它不是被调用的函数,而是简单地保存为字符串并放入 className 中。

为什么会发生这种情况?我无法调用我创建的任何函数。有人可以帮我吗?

Tam*_*dus 5

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

<div className={this.getClass()}></div>
Run Code Online (Sandbox Code Playgroud)